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