[ANN] pidgin git import v5

Felipe Contreras felipe.contreras at gmail.com
Wed May 23 08:28:57 EDT 2012

On Wed, May 23, 2012 at 5:53 AM, Richard Laager <rlaager at wiktel.com> wrote:
> On Tue, 2012-05-22 at 12:42 +0200, Felipe Contreras wrote:

Since you skipped the relevant part, I'm just going to state it for
the record: the Pidgin project does *not* plan to have a publicly
available analysis for the rationale to moving to mercurial like other
projects have[1][2][3][4].

>> If the switch was to git, this wouldn't be a problem.
> In my opinion, grafts don't really help much because you can't push/pull
> them (or has that changed?).

How are they not helpful?

Current situation:
  You move *everything* to mercurial at date X, one week later you
find a mistake in the conversion; you are screwed. No changes are
allowed, ever.

Situation with git:
  You split the repository into the old, and the new commits, you find
a mistake in the conversion of old commits, you fix it, and the new
history doesn't change.

That is a *huge* difference.

Say Jorge doesn't want the full history, so he only clones the new
repository, say you want the full history, so you run the
'./get_full_history.sh' script, and then you have it. What is the

And supposing you want *everyone* to have the full history, then
simply add the required commands to './autogen.sh'. Problem solved.

>> It would be best if there was an official git repository
> I believe that's the plan.


>> John Snow <john at snow.com> # OK
> I don't think anyone questions that we should use this, when we have
> this information.
>> John Snow # not OK
>> john at snow.com # not OK
> If this is all the information one has, I think it's just plain wrong
> that git forces you to add additional bogus information. But since it
> does, this would be the convention, correct?
> john <john at snow.com>
> John Snow <unknown>

The convention is up to you, as long as there's "name <email>" that's
fine. If the convention above is what you want, I can modify the
conversion scripts to generate those.

Right now it's:
Unknown <john at snow.com>
John Snow <unknown>

Monotone default is:
john <john at snow.com>
John Snow <John Snow>

See: https://github.com/felipec/pidgin-git-import/blob/master/mtn-hooks.lua

Does mercurial have some kind of pre-commit hook that could check for
these conventions?

Now the final quirk is that converting a git repository back to
mercurial is tricky, so people using the official git repository might
have trouble. But not if it's generated with 'hg-git'; this way people
could clone both, and push and pull from both clones quite easily. So
I suggest to use 'hg-git' to maintain the official git clone.


[1] http://trac.adium.im/wiki/DistributedVersionControl
[2] http://www.python.org/dev/peps/pep-0374/
[3] http://code.google.com/p/support/wiki/DVCSAnalysis
[4] http://blogs.atlassian.com/2011/02/moving_to_mercurial___why_we_did_it/

Felipe Contreras

More information about the Devel mailing list