Bert Huijben wrote:
> This value is actually tri-state to allow handling not provided,
> so the == check is correct. (Otherwise it would have been a
> svn_boolean_t, not a apr_int_64_t and a ‘b’ in the pattern
> instead of a ‘B’)
>Â
> The behaviour change in Julian's original patch for the copy args
> looks good to. (Probably an old bug)
My patch didn't change the behaviour of the 'send_copyfrom_args' parameter. It just simplified the implementation and made it consistent with your implementation of the same functionality in the 'switch' function. I guess that wasn't 100% clear from the log message.
Quoting from my original patch <http://svn.apache.org/viewvc?view=revision&revision=r1466570>:
[[[
* 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/trunk/subversion/svnserve/serve.c
+++ subversion/trunk/subversion/svnserve/serve.c
@@ -1813,16 +1813,17 @@
  svn_revnum_t rev;
  const char *target, *full_path, *depth_word;
  svn_boolean_t recurse;
-Â svn_boolean_t send_copyfrom_args;
-Â apr_uint64_t send_copyfrom_param;
+Â apr_uint64_t send_copyfrom_args; /* Optional; default FALSE */
+Â apr_uint64_t ignore_ancestry; /* Optional; default TRUE */
[...]
-Â SVN_ERR(svn_ra_svn_parse_tuple(params, pool, "(?r)cb?wB", &rev, &target,
-Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â &recurse, &depth_word, &send_copyfrom_param));
+Â SVN_ERR(svn_ra_svn_parse_tuple(params, pool, "(?r)cb?wB?B", &rev, &target,
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â &recurse, &depth_word,
+Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â &send_copyfrom_args, &ignore_ancestry));
[...]
-Â send_copyfrom_args = (send_copyfrom_param == SVN_RA_SVN_UNSPECIFIED_NUMBER) ?
-Â Â Â FALSE : (svn_boolean_t) send_copyfrom_param;
-
[...]Â SVN_ERR(accept_report(&is_checkout, NULL, conn, pool, b, rev, target, NULL, TRUE,
-Â Â Â Â Â Â Â Â Â Â Â Â depth, send_copyfrom_args, FALSE));
+Â Â Â Â Â Â Â Â Â Â Â Â depth,
+Â Â Â Â Â Â Â Â Â Â Â Â (send_copyfrom_args == TRUE) /* send_copyfrom_args */,
+Â Â Â Â Â Â Â Â Â Â Â Â (ignore_ancestry != FALSE) /* ignore_ancestry */));
]]]
- Julian
Received on 2013-04-10 23:04:36 CEST