Version control systems
nominolo at googlemail.com
Sun Aug 10 10:24:49 EDT 2008
I had my share of problems with Darcs; working on the GHC API I
constantly have to avoid conflicts. My temporary workaround is to
not update at all. Maybe switching to Darcs 2 format would help
here, but there are other issues.
I initially converted GHC to Git to be able to more easily checkout
older versions (e.g., to find a build bug using git-bisect) but with
external core libraries this just doesn't work. Right now, there is
simply no practical way to check out an old, building version of GHC!
Even if we'd switch to Darcs 2 this problem could not be solved. We
would also still need turn to the Git repo to get change histories
for specific files or to run commands such as 'git-blame' (unless you
don't mind getting a cup of coffee and some biscuits each time you
run those commands).
I think we can make things easier for existing library contributors
by providing a darcs/git cheat sheet or even a command line wrapper.
Previous attempts at creating such a wrapper have been abandoned,
possibly because some commands cannot easily be modelled in Git.
However, if we accept some limitations this is doable. In particular
the tricky commands are:
darcs pull -- (save) cherry picking requires patch dependency
darcs push -- same as above
(darcs pull -a and darcs push -a both can be modelled easily)
darcs replace -- not directly supported in Git, but could be
-- with a script.
If these missing features don't feel like too big a handicap the
change should be fairly easy for existing contributors. (And with
some time they can start and learn Git's other features.)
For our build woes integrating the libraries and the main GHC repo in
one Git repo will be very helpful, since we can now just instruct
build bots to try and build revision 12345deadbeef and be happy.
My shadow / Change is coming. / Now is my time. / Listen to my muscle
memory. / Contemplate what I've been clinging to. / Forty-six and two
ahead of me.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 194 bytes
Desc: This is a digitally signed message part
Url : http://www.haskell.org/pipermail/glasgow-haskell-users/attachments/20080810/8e456ecd/PGP.bin
More information about the Glasgow-haskell-users