jpieper@tigris.org writes:
> Modified: trunk/subversion/libsvn_client/ra.c
> ==============================================================================
> --- trunk/subversion/libsvn_client/ra.c (original)
> +++ trunk/subversion/libsvn_client/ra.c Fri May 14 05:41:37 2004
> @@ -359,14 +359,22 @@
> we'll either use the path, or, if was copied, use its
> copyfrom_path. */
> change = apr_hash_get (changed_paths, path, APR_HASH_KEY_STRING);
> - if (change)
> +
> + /* If PATH was not newly added in this revision, then it may or may
> + not have also been part of a moved subtree. In this case, set a
> + default previous path, but still look through the parents of this
> + path for a possible copy event. */
> + if (change && change->action != 'A' && change->action != 'R')
> + prev_path = path;
> +
> + if (change && (change->action == 'A' || change->action == 'R'))
> {
> + /* PATH is new in this revision. This means it cannot have been
> + part of a copied subtree. */
> if (change->copyfrom_path)
> prev_path = apr_pstrdup (pool, change->copyfrom_path);
> - else if (change->action == 'A')
> - prev_path = NULL;
> else
> - prev_path = path;
> + prev_path = NULL;
>
> *prev_path_p = prev_path;
> if (action_p)
Josh, could you a) fix the comment which is above the `change =
apr_hash_get' line to reflect the new truth, and maybe simplify the
logic above with an extra level of indentation? Something like:
/* See if PATH was explicitly changed in this revision. */
change = apr_hash_get (changed_paths, path, APR_HASH_KEY_STRING);
if (change)
{
/* If PATH was not newly added in this revision, then it may or may
not have also been part of a moved subtree. In this case, set a
default previous path, but still look through the parents of this
path for a possible copy event. */
if (change->action != 'A' && change->action != 'R')
{
prev_path = path;
}
else
{
/* PATH is new in this revision. This means it cannot have been
part of a copied subtree. */
if (change->copyfrom_path)
prev_path = apr_pstrdup (pool, change->copyfrom_path);
*prev_path_p = prev_path;
if (action_p)
*action_p = change->action;
if (copyfrom_rev_p)
*copyfrom_rev_p = change->copyfrom_rev;
return SVN_NO_ERROR;
}
}
[...]
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri May 14 15:51:49 2004