I'm touching a lot of code here. Reviews would be much apprecieated.
[[[
Make the diff editor able to receive copyfrom information. Involves
passing down a 'send_copyfrom_args' to all RA implemtations.
Note that this commit merely allows the copyfrom args to be passed to
the client. They copyfrom information is not yet stored and used.
* subversion/libsvn_ra/ra_loader.c
(svn_ra_do_diff4): New.
(svn_ra_do_diff3): Move from here ..
* subversion/libsvn_ra/deprecated.c
(svn_ra_do_diff3): .. To here.
(svn_ra_do_diff2): Call svn_ra_do_diff3() instead of the vtable
callback since the signature has changed.
* subversion/libsvn_ra/wrapper_template.h
(compat_do_diff): Track the new 'send_copyfrom_args' parameter.
* subversion/libsvn_ra/ra_loader.h
(svn_ra__vtable_t): Add 'send_copyfrom_args' parameter.
* subversion/libsvn_ra_local/ra_plugin.c
(svn_ra_local__do_diff): Add 'send_copyfrom_args' parameter.
* subversion/tests/cmdline/diff_tests.py
(test_list): Mark diff_backward_repos_wc_copy() as XFailing.
The tested code currently does not handle copied paths
with no text changes. Will be fixed in a follow-up.
* subversion/libsvn_ra_svn/protocol
(...) Update the diff command description.
* subversion/libsvn_ra_svn/client.c
(ra_svn_diff): Add 'send_copyfrom_args' to the command to be written.
* subversion/include/svn_ra.h
(svn_ra_do_diff4): New.
(svn_ra_do_diff3): Deprecate.
* subversion/libsvn_wc/diff.c
(add_file): Add TODO about recording the copyfrom info and checking
that the copyfrom revision is within the span of the diff operation.
* subversion/libsvn_client/repos_diff.c
(add_file): Add TODO about recording the copyfrom info and checking
that the copyfrom revision is within the span of the diff operation.
* subversion/libsvn_client/diff.c
(diff_repos_repos,
diff_repos_wc,
diff_summarize_repos_repos): Replace svn_ra_do_diff3() with
svn_ra_do_diff4().
* subversion/libsvn_ra_neon/ra_neon.h
(svn_ra_neon__do_diff): Add 'send_copyfrom_args' parameter.
* subversion/libsvn_ra_neon/fetch.c
(svn_ra_neon__do_diff): Add 'send_copyfrom_args' parameter.
* subversion/libsvn_ra_serf/update.c
(svn_ra_serf__do_diff): Add 'send_copyfrom_args' parameter.
* subversion/libsvn_ra_serf/ra_serf.h
(svn_ra_serf__do_diff): Add 'send_copyfrom_args' parameter.
* subversion/svnserve/serve.c
(diff): Parse the parameters for send_copyfrom_param.
]]]
Thanks,
Daniel
Received on 2010-08-16 15:10:39 CEST