Migration considerations

Richard Laager rlaager at wiktel.com
Mon Feb 7 21:09:54 EST 2011


On Tue, 2011-02-08 at 02:33 +0200, Felipe Contreras wrote:
> > One unfortunate note here is that hg doesn't directly support a revision whose
> > committer wasn't it's author

> In git, there are standard tags, such as 'Signed-off-by'. Say, if you apply a
> patch by me, the s-o-b's would be:
> 
> Signed-off-by: Felipe Contreras <felipe.contreras at gmail.com>
> Signed-off-by: John Bailey <rekkanoryo at rekkanoryo.org>

For the list archive...

This is NOT how this is handled in git. This is inline metadata (part of
the commit message). It's a Linux convention, not part of git. In other
words, git doesn't require Signed-off-by lines, and I could use
Signed-off-by lines with version control systems other than git.

In git, the author and committer are both tracked as first-class fields:
    git show --pretty=full HEAD | head -n3

Mercurial has only one field, so we would be forced to track this via
something inline like Signed-off-by tags. This is a disadvantage of
Mercurial.

> > To get equivalent behavior out of monotone's git_export command, I'd also have
> > needed to implement a patch.  It would have been more difficult to patch
> > monotone's C++ code for the git fast-export stuff than it was to patch convert's
> > python code.
> 
> No, you could just use 'git filter-branch' as I do in pidgin-git-import.
... from earlier...
> There is no advantage from hg's convert whatsoever.

The fact that we avoid using a third version control system in the
middle is arguably an advantage.

That said, `hg convert`'s (lack of) speed is a disadvantage, albeit
minor since it only needs to be run once. If you'd like to improve the
migration process, I'll certainly accept patches, as you know.

>  2) Always provide valid authors. In git, they are in the form "Real Name
>     <email at box.com>", and the mail part is _mandatory_. If there's no mail
>     address, <unknown> would make sense.

You're asking us to put fake data into our repository. I don't know why
we'd want to do that. Since git requires it, why not just add it as part
of the hg -> git conversion, if and only if a revision's author doesn't
contain /<.*>/?

Richard
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://pidgin.im/pipermail/devel/attachments/20110207/c018ca0a/attachment.sig>


More information about the Devel mailing list