You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ju...@apache.org on 2015/11/10 20:33:48 UTC
svn commit: r1713718 - in
/subversion/branches/move-tracking-2/subversion/svnmover: merge3.c svnmover.c
Author: julianfoad
Date: Tue Nov 10 19:33:48 2015
New Revision: 1713718
URL: http://svn.apache.org/viewvc?rev=1713718&view=rev
Log:
On the 'move-tracking-2' branch: Make 'svnmover revert' also discard all
conflicts, like 'svn revert' does.
Also fix some memory allocation bugs.
* subversion/svnmover/merge3.c
(branch_merge_subtree_r): Allocate conflicts in the result pool.
* subversion/svnmover/svnmover.c
(do_switch): Don't raise an error just because there are conflicts.
(do_revert): Discard all conflicts.
(execute): After 'merge', don't raise an error just because there are
conflicts. Remember conflicts in the WC pool so they will persist beyond
this iteration of the command loop.
Modified:
subversion/branches/move-tracking-2/subversion/svnmover/merge3.c
subversion/branches/move-tracking-2/subversion/svnmover/svnmover.c
Modified: subversion/branches/move-tracking-2/subversion/svnmover/merge3.c
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/svnmover/merge3.c?rev=1713718&r1=1713717&r2=1713718&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/svnmover/merge3.c (original)
+++ subversion/branches/move-tracking-2/subversion/svnmover/merge3.c Tue Nov 10 19:33:48 2015
@@ -965,7 +965,7 @@ branch_merge_subtree_r(svn_branch_txn_t
{
svn_branch_subtree_t *s_src, *s_tgt, *s_yca;
apr_hash_t *diff_yca_src, *diff_yca_tgt;
- apr_hash_t *e_conflicts = apr_hash_make(scratch_pool);
+ apr_hash_t *e_conflicts = apr_hash_make(result_pool);
conflict_storage_t *conflict_storage = conflict_storage_create(result_pool);
SVN_ITER_T(svn_element_content_t *) *pi;
svn_element_tree_t *src_elements, *tgt_elements, *yca_elements;
Modified: subversion/branches/move-tracking-2/subversion/svnmover/svnmover.c
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/svnmover/svnmover.c?rev=1713718&r1=1713717&r2=1713718&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/svnmover/svnmover.c (original)
+++ subversion/branches/move-tracking-2/subversion/svnmover/svnmover.c Tue Nov 10 19:33:48 2015
@@ -1360,18 +1360,12 @@ do_switch(svnmover_wc_t *wc,
if (svnmover_any_conflicts(wc->conflicts))
{
SVN_ERR(svnmover_display_conflicts(wc->conflicts, scratch_pool));
- return svn_error_createf(
- SVN_ERR_BRANCHING, NULL,
- _("Switch failed because of conflicts"));
- }
- else
- {
- SVN_DBG(("Switch completed: no conflicts"));
}
- /* ### TODO: If the merge raises conflicts, either revert to the
- pre-update state or store and handle the conflicts. Currently
- this just leaves the merge partially done and raises an error. */
+ /* ### TODO: If the merge raises conflicts, allow the user to revert
+ to the pre-update state or resolve the conflicts. Currently
+ this leaves the merge partially done and the pre-update state
+ is lost. */
}
return SVN_NO_ERROR;
@@ -2468,6 +2462,7 @@ do_revert(svnmover_wc_t *wc,
wc->working->branch,
wc->base->branch,
scratch_pool));
+ wc->conflicts = NULL;
return SVN_NO_ERROR;
}
@@ -2965,18 +2960,11 @@ execute(svnmover_wc_t *wc,
arg[0]->el_rev /*from*/,
arg[1]->el_rev /*to*/,
arg[2]->el_rev /*yca*/,
- iterpool, iterpool));
+ wc->pool, iterpool));
if (svnmover_any_conflicts(wc->conflicts))
{
SVN_ERR(svnmover_display_conflicts(wc->conflicts, iterpool));
- return svn_error_createf(
- SVN_ERR_BRANCHING, NULL,
- _("Merge failed because of conflicts"));
- }
- else
- {
- SVN_DBG(("Merge completed: no conflicts"));
}
}