cmpilato_at_apache.org wrote on Tue, May 15, 2012 at 17:57:36 -0000:
> Author: cmpilato
> Date: Tue May 15 17:57:36 2012
> New Revision: 1338810
> URL: http://svn.apache.org/viewvc?rev=1338810&view=rev
> Fix issue #4184 ("partial svnsync drops properties when converting
> copies to adds"). Again.
> If we downgrade a copy to a plain add, forcibly dump the full proplist
> of the added thing across the wire, too.
> * subversion/libsvn_repos/replay.c
> (path_driver_cb_func): Transmit props when the CHANGE indicates we
> should *and* when we've downgraded a copy to a raw add.
> Modified: subversion/trunk/subversion/libsvn_repos/replay.c
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_repos/replay.c?rev=1338810&r1=1338809&r2=1338810&view=diff
> --- subversion/trunk/subversion/libsvn_repos/replay.c (original)
> +++ subversion/trunk/subversion/libsvn_repos/replay.c Tue May 15 17:57:36 2012
> @@ -698,10 +698,15 @@ path_driver_cb_func(void **dir_baton,
> - /* Handle property modifications. */
> if (! do_delete || do_add)
> - if (change->prop_mod)
> + /* Handle property modifications.
> + Note that this needs to happen in the "copy from a file or
> + directory we aren't allowed to see" case since otherwise the
> + caller will have no way to actually get those properties
> + which they are apparently allowed to see. */
> + if (change->prop_mod || (change->copyfrom_path && ! copyfrom_path))
Why is change->copyfrom_path initialized?
You don't check change->copyfrom_known, and fill_copyfrom() is called in
the 'do_add' case but not in the '! do_delete && ! do_add' case.
And, BTW, did you revert the docstring patch to fill_copyfrom() part of
r1338803? I think it should stay.
> apr_array_header_t *prop_diffs;
> apr_hash_t *old_props;
Received on 2012-05-15 21:52:18 CEST