/[Apache-SVN]
ViewVC logotype

Revision 1465292


Jump to revision: Previous Next
Author: julianfoad
Date: Sat Apr 6 19:27:09 2013 UTC (11 years ago)
Changed paths: 17
Log Message:
Add an 'ignore ancestry' parameter to the RA layer 'update' APIs, for
symmetry with the 'switch' APIs.  Also add a scratch pool for the same
reason, although it is as yet unused.

The 'switch' APIs historically ignored ancestry and have recently gained an
'ignore ancestry' control (r1449413) so it can be disabled; they gained a
scratch pool at the same time.  The 'update' APIs have historically never
ignored ancestry, and now they can.

For ra_local and ra_serf this works for all existing server versions, but
for ra_svn this requires a new svnserve.  (Our DAV protocol already
supported an 'ignore ancestry' flag.)

Note: This 'ignore ancestry' option is the one that tells the server to
report the difference between two unrelated nodes of the same kind as a
content change instead of as a node replacement.  This is not the option to
'svn switch' that allows the switch URL to be unrelated to the current URL,
that is also named '--ignore-ancestry'.

This was discussed in the dev@ email thread "Consistency between 'update'
and 'switch' APIs", starting on 2013-03-13, archived at e.g.
<http://svn.haxx.se/dev/archive-2013-03/0200.shtml>.

* subversion/include/svn_ra.h,
  subversion/libsvn_ra/ra_loader.c,
  subversion/libsvn_ra/deprecated.c
  (svn_ra_do_update3): New, renamed from svn_ra_do_update2(). Add
    'ignore_ancestry' and scratch pool parameters.
  (svn_ra_do_update2): Deprecate, and rewrite as a wrapper.
  (svn_ra_do_update): Adjust the call to the vtable method.
  (svn_ra_do_switch3): Adjust the doc string.
  (svn_ra_do_diff3): Adjust a reference in the doc string.

* subversion/libsvn_ra/ra_loader.h
  (svn_ra__vtable_t): Add 'ignore_ancestry' and scratch pool parameters to
    the 'do_update' method. Update the doc string of the 'do_switch' method.

* subversion/libsvn_ra/wrapper_template.h
  (compat_do_update): Adjust the call to the vtable method.

* subversion/libsvn_ra_local/ra_plugin.c
  (svn_ra_local__do_update): Add 'ignore_ancestry' and scratch pool
    parameters, the latter unused.

* subversion/libsvn_ra_serf/ra_serf.h,
  subversion/libsvn_ra_serf/update.c
  (svn_ra_serf__do_update): Add 'ignore_ancestry' and scratch pool
    parameters, the latter unused.

* subversion/include/svn_ra_svn.h,
  subversion/libsvn_ra_svn/marshal.c
  (svn_ra_svn_write_cmd_update): Add the 'ignore_ancestry' flag.

* subversion/libsvn_ra_svn/client.c
  (ra_svn_update): Add 'ignore_ancestry' and scratch pool parameters, the
    latter unused.

* subversion/svnserve/serve.c
  (update): Parse and use the 'ignore_ancestry' parameter; default to false
    if not present. Simplify the 'send_copyfrom_args' handling to match how
    it is done in 'switch'.

* subversion/libsvn_ra_svn/protocol
  Document the addition of the new parameter to the 'update' command.

Update the callers, without ever requesting to ignore ancestry:

* subversion/libsvn_client/copy_foreign.c
  (copy_foreign_dir): Track the change to svn_ra_do_update3().

* subversion/libsvn_client/export.c
  (export_directory): Track the change to svn_ra_do_update3().

* subversion/libsvn_client/update.c
  (update_internal): Track the change to svn_ra_do_update3().

* subversion/svnrdump/svnrdump.c
  (dump_initial_full_revision): Track the change to svn_ra_do_update3().


Changed paths

Path Details
Directorysubversion/trunk/subversion/include/svn_ra.h modified , text changed
Directorysubversion/trunk/subversion/include/svn_ra_svn.h modified , text changed
Directorysubversion/trunk/subversion/libsvn_client/copy_foreign.c modified , text changed
Directorysubversion/trunk/subversion/libsvn_client/export.c modified , text changed
Directorysubversion/trunk/subversion/libsvn_client/update.c modified , text changed
Directorysubversion/trunk/subversion/libsvn_ra/deprecated.c modified , text changed
Directorysubversion/trunk/subversion/libsvn_ra/ra_loader.c modified , text changed
Directorysubversion/trunk/subversion/libsvn_ra/ra_loader.h modified , text changed
Directorysubversion/trunk/subversion/libsvn_ra/wrapper_template.h modified , text changed
Directorysubversion/trunk/subversion/libsvn_ra_local/ra_plugin.c modified , text changed
Directorysubversion/trunk/subversion/libsvn_ra_serf/ra_serf.h modified , text changed
Directorysubversion/trunk/subversion/libsvn_ra_serf/update.c modified , text changed
Directorysubversion/trunk/subversion/libsvn_ra_svn/client.c modified , text changed
Directorysubversion/trunk/subversion/libsvn_ra_svn/marshal.c modified , text changed
Directorysubversion/trunk/subversion/libsvn_ra_svn/protocol modified , text changed
Directorysubversion/trunk/subversion/svnrdump/svnrdump.c modified , text changed
Directorysubversion/trunk/subversion/svnserve/serve.c modified , text changed

infrastructure at apache.org
ViewVC Help
Powered by ViewVC 1.1.26