You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by rh...@apache.org on 2012/05/12 11:40:57 UTC
svn commit: r1337489 -
/subversion/trunk/subversion/libsvn_client/commit_util.c
Author: rhuijben
Date: Sat May 12 09:40:57 2012
New Revision: 1337489
URL: http://svn.apache.org/viewvc?rev=1337489&view=rev
Log:
* subversion/libsvn_client/commit_util.c
(harvest_status_callback): Make the mixed revision calculation easier to
understand by using an else and existing variables.
Modified:
subversion/trunk/subversion/libsvn_client/commit_util.c
Modified: subversion/trunk/subversion/libsvn_client/commit_util.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/commit_util.c?rev=1337489&r1=1337488&r2=1337489&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/commit_util.c (original)
+++ subversion/trunk/subversion/libsvn_client/commit_util.c Sat May 12 09:40:57 2012
@@ -796,10 +796,9 @@ harvest_status_callback(void *status_bat
}
}
- /* Further additions occur in copy mode. */
- if (copy_mode
- && (!is_added || copy_mode_root)
- && !(state_flags & SVN_CLIENT_COMMIT_ITEM_DELETE))
+ /* Further copies may occur in copy mode. */
+ else if (copy_mode
+ && !(state_flags & SVN_CLIENT_COMMIT_ITEM_DELETE))
{
svn_revnum_t dir_rev;
@@ -811,16 +810,21 @@ harvest_status_callback(void *status_bat
if (copy_mode_root || node_rev != dir_rev)
{
- state_flags |= SVN_CLIENT_COMMIT_ITEM_ADD;
+ state_flags |= (SVN_CLIENT_COMMIT_ITEM_ADD
+ | SVN_CLIENT_COMMIT_ITEM_IS_COPY);
- SVN_ERR(svn_wc__node_get_origin(NULL, &cf_rev,
- &cf_relpath, NULL,
- NULL, NULL,
- wc_ctx, local_abspath, FALSE,
- scratch_pool, scratch_pool));
-
- if (cf_relpath)
- state_flags |= SVN_CLIENT_COMMIT_ITEM_IS_COPY;
+ if (status->copied)
+ {
+ /* Copy from original location */
+ cf_rev = original_rev;
+ cf_relpath = original_relpath;
+ }
+ else
+ {
+ /* Copy BASE location, to represent a mixed-rev or switch copy */
+ cf_rev = status->revision;
+ cf_relpath = status->repos_relpath;
+ }
}
}