Thread (7 messages) flat view 7 messages, 4 authors, 2016-06-15

Re: [PATCH] contrib/svn-fe: Fast script to remap svn history

From: David Michael Barr <hidden>
Date: 2016-06-15 22:49:43

Hi,
quoted
This python script walks the commit sequence imported by svn-fe.
For each commit, it tries to identify the branch that was changed.
Commits are rewritten to be rooted according to the standard layout.
A basic heuristic of matching trees is used to find parents for the
first commit in a branch and for tags.
Nice, how easy would it be to extend it to deal with other layouts?
I think its just a matter of adjusting the regular expression to match roots
and the mapping from roots to refs.
quoted
diff --git a/fast-import.c b/fast-import.c
index 2317b0f..8f68a89 100644
--- a/fast-import.c
+++ b/fast-import.c
@@ -1454,6 +1454,15 @@ static int tree_content_set(
               n = slash1 - p;
       else
               n = strlen(p);
+       if (!slash1 && !n) {
+               if (!S_ISDIR(mode))
+                       die("Root cannot be a non-directory");
+               hashcpy(root->versions[1].sha1, sha1);
+               if (root->tree)
+                       release_tree_content_recursive(root->tree);
+               root->tree = subtree;
+               return 1;
+       }
       if (!n)
               die("Empty path component found in input");
       if (!slash1 && !S_ISDIR(mode) && subtree)
What is this hunk about?
My bad, that belongs in a separate commit. I'll break it out after review.

The subject would read: "fast-import: Allow filemodify to set the root".

--
David Barr
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help