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)",