Hi folks,

here's a work in progress for fixing a long-standing diff bug.

  "'svn diff URL1 URL2' not reverse of 'svn diff URL2 URL1'"
  http://subversion.tigris.org/issues/show_bug.cgi?id=2333

The basic approach was suggested by cmpilato in a comment 
to the issue.  In repos_diff.c:delete_entry(), I call svn_client_list2(),
handing it a callback that prints diffs for all files in the "old"
tree.  It's a bit awkward to call a client API function in repos_diff,
whose edit_baton was never yet sullied by an svn_client_ctx_t.

The ugliest hack (so far) is in diff_deleted_dir_cb(), the callback.
I need to hand get_file_from_ra() a path relative to the RA 
session's URL.

TODOs include:

Find out why diff_tests.py 28 still fails.

Investigate other failing diff tests.

Include dir diffs in the list2-callback.

Handle authz failures gracefully.

Anything else?

Comments welcome.

Steve


--
Stephen Butler | Senior Consultant
elego Software Solutions GmbH
Gustav-Meyer-Allee 25 | 13355 Berlin | Germany
fon: +49 30 2345 8696 | mobile: +49 163 25 45 015
fax: +49 30 2345 8695 | http://www.elegosoft.com
Geschäftsführer: Olaf Wagner | Sitz der Gesellschaft: Berlin
Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194


Reply via email to