monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Monotone-devel] git fast-export


From: Felipe Contreras
Subject: Re: [Monotone-devel] git fast-export
Date: Sun, 18 Jan 2009 00:52:28 +0200

On Sat, Jan 17, 2009 at 9:04 AM, Derek Scherger <address@hidden> wrote:
> On Wed, Jan 14, 2009 at 12:50 AM, Felipe Contreras
> <address@hidden> wrote:
>>
>> >> 1) Your tool adds a bunch of "Monotone-" fields, can those be disabled?
>> >
>> > There's no option at the moment but it would be easy to add.
>>
>> It would be really useful.
>
> I've added --log-revids and --log-certs to enable including revision ids and
> cert values in the commit logs. These are off by default .

Great!

>> >> 2) There's no author mapping, can this option be added?
>> >
>> > I'm not exactly sure what you mean by author mapping but I assume
>> > translating between things like "address@hidden" and "Fred Flintstone
>> > <address@hidden>"? Is there a generally accepted format that other
>> > tools
>> > use for this?
>>
>> Yes, that's what I meant.
>>
>> The only format I know is the one from git-svn:
>> felipec = Felipe Contreras <address@hidden>
>
> I've added --authors-file and --branches-file options that work like this
> for mapping author names and branch names respectively. Names not found in
> these maps are used as-is. I've also changed the default branch to "unknown"
> from "master" but this can be changed with the branches-file mapping to
> whatever you want with a line like "unknown = whatever-you-want."

Very nice. Now the only difference is that for unknown users my script
maps them to "Unknown <user_id>".

>> >> 3) I add the mtn sha1 in refs/mtn/<id>
>> >
>> > This is easy to add too. I have added refs/mtn/roots/<id> and
>> > refs/mtn/leaves/<id> and was wondering about all of the monotone
>> > revision
>> > ids. I assume the leaf refs would prevent git from wanting to garbage
>> > collect otherwise unreferenced revs if there were any?
>
> I've added --refs=roots, --refs=leaves and --refs=revs to include
> refs/mtn/roots, refs/mtn/leaves and refs/mtn/revs respectively.

Great :)

>> If there's a ref pointing to it, then it's not pruned.
>
> Good. Including --refs=leaves should make sure that nothing is subject to
> garbage collection then.
>
> Branches and tags can be manually fixed a posteriori, no big issue.
>>
>> The important things are the commits themselves.
>
> Not always. Monotone allows things in branch names that git does not. If
> these aren't changed git will fail to import them.
> Use --branches-file to map offending names to something git can handle.

True.

>> It probably depends on the intent of the clone:
>> a) migrate the repo forever
>> b) mirror a mtn repo
>>
>> Right now I'm interested in b), so I find the ref/mtn approach very
>> useful since I can quickly look for the mtn or git sha1.
>
> The --refs=revs option does clutter up the gitk display somewhat but
> otherwise seems fine.

I tested your changes and converted the pidgin repo, on the second try
I was finally able to convert it, took me 8 hours (1 revs/s).

I ran my comparison script, but unfortunately the first revision has a
missmatch:

yours:
author Tailor Script <address@hidden> 953780991 +0000

mine:
author Tailor Script <address@hidden> 953773791 +0200

Which suggest that your script is not handling the timezone correctly
(not sure about that).

Would it be possible to pause after a certain amount of commits, or at
least issue a checkpoint? (maybe git fast-import has this option)

Very good job! I'll try to look further into this later.

Cheers.

-- 
Felipe Contreras




reply via email to

[Prev in Thread] Current Thread [Next in Thread]