Re: [PATCH] contrib/svn-fe: Fast script to remap svn history
- From
David Michael Barr <david.barr@cordelta.com>
- Date
- Oct 7, 2010, 07:17 UTC
- Message-ID
- <A609D4AA-04A8-4190-9CA9-3EF7F52BB93F@cordelta.com>
- In-Reply-To
- <AANLkTim_3m=YmyVL7eEoWDGwDwmuDJsYkQMgx8ciVPH0@mail.gmail.com>
Hi,
Show 7 quoted lines
>> 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.
Show 22 quoted lines
>> 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