RFC: migrating to git

Dan Knapp dankna at gmail.com
Thu Feb 10 00:56:30 CET 2011

In my one serious attempt to use git for one of my own projects, some
seemingly-innocuous operation deleted a file on me and I lost a couple
hours of work.  I agree with the people who have said that git's
documentation and semantics are highly confusing, moreso than darcs's.
 For example, what does it mean to "stage" a commit?  Why is there an
entire GUI window for this presumably-important action, and why do
things I think I've committed not appear in the change history or
mysteriously reverse themselves?

If ghc went to git, it wouldn't make me less likely to contribute, but
I would do so by checking everything into a local darcs repo and using
that to track my own changes, then letting somebody else do the work
of getting them into git!  Which probably would reduce the likelihood
of my patch being accepted, but I consider git a complete waste of my
time and have zero interest in learning to use it.

Plus, while I admire everyone's willingness to consider a VCS that
isn't Haskell-based, I have to admit that there's a Haskell partisan
in me.  And there are real advantages to being a tight-knit community.
 If the GHC maintainers go to the Darcs maintainers and say "We
absolutely need feature X or we will have to stop using you", the
Darcs maintainers are likely to say "It'll be tough but we'll find a
way to do it."  But we aren't by any means the biggest project using
Git, so the Git maintainers would be likely to say "That's nice, keep
in touch."

Obligatory disclaimer - I've never written any code actually in GHC,
although I have used the API (I am the author of direct-plugins).  But
I frequently read its code to clarify how things work, and I do expect
that it's a near-certainty that I'll be hacking GHC itself at some
point in the future.

Dan Knapp
"An infallible method of conciliating a tiger is to allow oneself to
be devoured." (Konrad Adenauer)

More information about the Glasgow-haskell-users mailing list