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