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/10/16 12:28:24 UTC
svn commit: r1708949 - in /subversion/branches/move-tracking-2/subversion:
libsvn_delta/branch.c libsvn_delta/compat3e.c svnmover/svnmover.c
Author: julianfoad
Date: Fri Oct 16 10:28:24 2015
New Revision: 1708949
URL: http://svn.apache.org/viewvc?rev=1708949&view=rev
Log:
On the 'move-tracking-2' branch: Some fixes for top-level branching.
This isn't completely fixed, however.
* subversion/libsvn_delta/branch.c
(branch_state_pool_get): New.
(branch_finalize_eids): Allocate state data in the right pool.
* subversion/libsvn_delta/compat3e.c
(editor3_open_branch): Don't assert what isn't always true.
* subversion/svnmover/svnmover.c
(wc_checkout): Allocate state data in the right pool.
(do_topbranch): Allocate a unique id for the new branch.
Modified:
subversion/branches/move-tracking-2/subversion/libsvn_delta/branch.c
subversion/branches/move-tracking-2/subversion/libsvn_delta/compat3e.c
subversion/branches/move-tracking-2/subversion/svnmover/svnmover.c
Modified: subversion/branches/move-tracking-2/subversion/libsvn_delta/branch.c
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_delta/branch.c?rev=1708949&r1=1708948&r2=1708949&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_delta/branch.c (original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_delta/branch.c Fri Oct 16 10:28:24 2015
@@ -48,6 +48,13 @@
(strcmp(svn_branch_get_id(branch1, scratch_pool), \
svn_branch_get_id(branch2, scratch_pool)) == 0)
+/* */
+static apr_pool_t *
+branch_state_pool_get(svn_branch_state_t *branch)
+{
+ return apr_hash_pool_get(branch->element_tree->e_map);
+}
+
svn_branch_revision_root_t *
svn_branch_revision_root_create(svn_branch_repos_t *repos,
svn_revnum_t rev,
@@ -107,7 +114,8 @@ branch_finalize_eids(svn_branch_state_t
{
apr_hash_index_t *hi;
- branch->bid = branch_finalize_bid(branch->bid, mapping_offset, scratch_pool);
+ branch->bid = branch_finalize_bid(branch->bid, mapping_offset,
+ branch_state_pool_get(branch));
if (branch->element_tree->root_eid < -1)
{
branch->element_tree->root_eid
Modified: subversion/branches/move-tracking-2/subversion/libsvn_delta/compat3e.c
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_delta/compat3e.c?rev=1708949&r1=1708948&r2=1708949&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_delta/compat3e.c (original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_delta/compat3e.c Fri Oct 16 10:28:24 2015
@@ -1186,8 +1186,6 @@ editor3_open_branch(void *baton,
scratch_pool);
if (new_branch)
{
- SVN_ERR_ASSERT(predecessor->rev == new_branch->predecessor->rev);
- SVN_ERR_ASSERT(strcmp(predecessor->bid, new_branch->predecessor->bid) == 0);
SVN_ERR_ASSERT(root_eid == svn_branch_root_eid(new_branch));
return SVN_NO_ERROR;
}
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=1708949&r1=1708948&r2=1708949&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/svnmover/svnmover.c (original)
+++ subversion/branches/move-tracking-2/subversion/svnmover/svnmover.c Fri Oct 16 10:28:24 2015
@@ -198,7 +198,7 @@ wc_checkout(svnmover_wc_t *wc,
base_txn = svn_branch_repos_get_base_revision_root(edit_txn);
wc->base = apr_pcalloc(wc->pool, sizeof(*wc->base));
wc->base->revision = base_revision;
- wc->base->branch_id = base_branch_id;
+ wc->base->branch_id = apr_pstrdup(wc->pool, base_branch_id);
wc->base->branch
= svn_branch_revision_root_get_branch_by_id(base_txn, wc->base->branch_id,
scratch_pool);
@@ -2466,9 +2466,12 @@ do_topbranch(const char **new_branch_id_
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
+ int outer_eid;
+
+ SVN_ERR(svn_editor3_new_eid(editor, &outer_eid));
SVN_ERR(svn_editor3_branch(editor, new_branch_id_p,
from,
- NULL, 0, /*outer_branch,outer_eid*/
+ NULL /*outer_branch*/, outer_eid,
result_pool));
notify_v("A+ (branch %s)",