[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

[work-in-progress]: reverse blame patch

From: Daniel Berlin <dberlin_at_dberlin.org>
Date: 2005-02-26 21:27:02 CET

This patch includes a fully functional reverse blame.

The following problems prevent me from committing it, among other things
(lack of full testing yet):

1. It relies on diff -n (still trying to get output_diff_modified to do
exactly what i want) and some code i found for processing rcs changes,
which is not acceptable for us.

2. All versions not blamed get marked with the last revision you asked
about.

3. It needs a bit more factoring in the dav client change and
commenting, and blame-new should really be called blame-reverse.c :P
blame-reverse needs more cleanup, too.

It does include the following things:

1. Complete backwards compatibility with 1.1.x and 1.0.x servers
2. A completely streamy svn_repos_get_file_revs_reverse
3. Modification to mod_dav_svn, svnserve, and the client libraries to
call
4. A functional blame command that works in reverse.
5. The reverse blame command will check every 100 revisions or so to see
if it finished blaming all the lines for the revision you asked it to
blame, and will stop early if it did.

This helps enormously for things like changelogs that are rotated or
files that have been completely rewritten.

Pleaes feel free to try it out against 1.1.x and 1.0.x servers. I've
tried it against 1.2 svnserve and 1.1 svnserve, and 1.1 mod_dav.

I hvane't had time to set up the 1.2 mod_dav code and see if it works.

You can tell whether the new blame code is being used or not because the
new blame code currently has a bit of debugging code that will print
"Handling revision <revnum>" when it receives each revision from the
server.

(If you add the same code to the blame.c code in file_rev_handler, you
can actually see how unstreamy the old way when you have large numbers
of revisions)

I thought i'd throw it here for others to try.

--Dan

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Received on Sat Feb 26 21:30:46 2005

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.