svn diff including annotate/blame-alike information of when changes were made by who

I am not entirely sure i understood exactly what you want, but i did this with TortoiseSVN:

  1. Create Blame from revision 1 to revision A - save as A.txt
  2. Create Blame from revision 1 to revision B - save as B.txt
  3. Remove first column (line) from both text files (i used Pspad editor, which can delete a column of a text file)
  4. Merge A.txt and B.txt (TortoiseMerge.exe /base:"a.txt" /mine:"b.txt" )

It shows changed, added and removed lines between revisions A and B together with date, user and branch, i think that is what you wanted.


SVN diff takes exactly two revisions and generates output on the fly. SVN annotate takes exactly one revision. Your suspicion that the proposed utility will need to iterate over N revisions is correct; SVN stores revision states as whole objects.

You might have better luck with git and the git-svn gateway...