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

[WIP] Enable passing copyfrom information for the diff code when dealing with repository diffs.

From: Daniel Näslund <daniel_at_longitudo.com>
Date: Sun, 15 Aug 2010 21:27:22 +0200

Hi!

Why doesn't svn_ra_do_diff3() request that the repository sends copyfrom
args? The best explanation I've found is this commit message:

------------------------------------------------------------------------
r866577 | sussman | 2007-09-10 06:56:55 +0200 (mån, 10 sep 2007) | 87 lines

Send copyfrom-args on updates *only* if the client explicitly requests them.

This keeps the 1.5 servers backward-compatible. Because incoming
copyfrom args cause old clients to error, they should only be
requested by new clients that understand them. This means adding a
new boolean 'send_copyfrom_args' to the main libsvn_repos
editor-driver, svn_ra_do_update2(), and all four RA implementations.
Eesh!

[.. Rest of log message omitted for brevity ..]

I'm assuming noone saw a use case for having diff display copies back then and
since it involved passing down a lot of parameters, only svn_ra_do_updateX()
was revved. But with git diffs we have a use case for copyfrom info. How about
enable it? There's a WIP patch attached to this mail. I haven't done any wrapper
for svn_ra_do_diff3() though. A log message:

[[[
Make the diff code able to supply copyfrom information even when one of
the targets is an URL. Involves passing down a 'send_copyfrom_args' to
all RA implemtations.

* 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/include/svn_ra.h
  (svn_ra_do_diff4): New.
  (svn_ra_do_diff3): Deprecate.

* 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.
]]]

Does anyone have any objections to enable copyfrom info for URL->URL &&
URL->WC diffs?

Thanks,
Daniel

Received on 2010-08-15 21:28:12 CEST

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