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/19 23:24:05 UTC
svn commit: r1340572 - in /subversion/branches/1.7.x-commit-performance: ./
subversion/libsvn_client/commit_util.c
Author: rhuijben
Date: Sat May 19 21:24:04 2012
New Revision: 1340572
URL: http://svn.apache.org/viewvc?rev=1340572&view=rev
Log:
Merge r1337485 from trunk
Modified:
subversion/branches/1.7.x-commit-performance/ (props changed)
subversion/branches/1.7.x-commit-performance/subversion/libsvn_client/commit_util.c
Propchange: subversion/branches/1.7.x-commit-performance/
------------------------------------------------------------------------------
Merged /subversion/trunk:r1337485
Modified: subversion/branches/1.7.x-commit-performance/subversion/libsvn_client/commit_util.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-commit-performance/subversion/libsvn_client/commit_util.c?rev=1340572&r1=1340571&r2=1340572&view=diff
==============================================================================
--- subversion/branches/1.7.x-commit-performance/subversion/libsvn_client/commit_util.c (original)
+++ subversion/branches/1.7.x-commit-performance/subversion/libsvn_client/commit_util.c Sat May 19 21:24:04 2012
@@ -707,29 +707,45 @@ harvest_status_callback(void *status_bat
}
/* If NODE is in our changelist, then examine it for conflicts. We
- need to bail out if any conflicts exist. */
+ need to bail out if any conflicts exist.
+ The status walker checked for conflict marker removal. */
if (conflicted && matches_changelists)
{
- svn_boolean_t tc, pc, treec;
+ if (notify_func != NULL)
+ {
+ notify_func(notify_baton,
+ svn_wc_create_notify(local_abspath,
+ svn_wc_notify_failed_conflict,
+ scratch_pool),
+ scratch_pool);
+ }
+
+ return svn_error_createf(
+ SVN_ERR_WC_FOUND_CONFLICT, NULL,
+ _("Aborting commit: '%s' remains in conflict"),
+ svn_dirent_local_style(local_abspath, scratch_pool));
+ }
- SVN_ERR(svn_wc_conflicted_p3(&tc, &pc, &treec, wc_ctx,
- local_abspath, scratch_pool));
- if (tc || pc || treec)
+ if (status->node_status == svn_wc_status_missing && matches_changelists)
+ {
+ /* Added files and directories must exist. See issue #3198. */
+ if (is_added && is_op_root)
{
if (notify_func != NULL)
{
notify_func(notify_baton,
svn_wc_create_notify(local_abspath,
- svn_wc_notify_failed_conflict,
+ svn_wc_notify_failed_missing,
scratch_pool),
scratch_pool);
}
-
return svn_error_createf(
- SVN_ERR_WC_FOUND_CONFLICT, NULL,
- _("Aborting commit: '%s' remains in conflict"),
- svn_dirent_local_style(local_abspath, scratch_pool));
+ SVN_ERR_WC_PATH_NOT_FOUND, NULL,
+ _("'%s' is scheduled for addition, but is missing"),
+ svn_dirent_local_style(local_abspath, scratch_pool));
}
+
+ return SVN_NO_ERROR;
}
if (status->conflicted && status->kind == svn_node_unknown)
@@ -798,23 +814,6 @@ harvest_status_callback(void *status_bat
information about it. */
if (state_flags & SVN_CLIENT_COMMIT_ITEM_ADD)
{
- /* First of all, the working file or directory must exist.
- See issue #3198. */
- if (working_kind == svn_node_none)
- {
- if (notify_func != NULL)
- {
- notify_func(notify_baton,
- svn_wc_create_notify(local_abspath,
- svn_wc_notify_failed_missing,
- scratch_pool),
- scratch_pool);
- }
- return svn_error_createf(
- SVN_ERR_WC_PATH_NOT_FOUND, NULL,
- _("'%s' is scheduled for addition, but is missing"),
- svn_dirent_local_style(local_abspath, scratch_pool));
- }
/* Regular adds of files have text mods, but for copies we have
to test for textual mods. Directories simply don't have text! */