Tim Chevalier:
Now, usually the work stoppage is just a matter of waiting for darcs
to complete. But today the HEAD was broken. so since I didn't know how
long it was going to take for a patch that fixed it to get checked in,
I spent a couple hours trying to roll back patches to get into a state
where I at least had a version of GHC that would build so I could
continue with other work while waiting for the fix to get checked in.
This didn't work, so now I'm waiting while a new tree checks out from
scratch.

Is there a way to insulate myself from GHC breakage (and I realize
that in the HEAD, a certain amount of breakage is inevitable) while
still checking in my changes on a regular basis? I see two
alternatives:
1) commit my changes frequently, on a branch and merge it to the HEAD
at some future time (but past experience has shown that merging it
later is just too painful)
2) never commit my changes until I consider my work "done", then
commit them all at once (but it generally seems better to commit small
amounts of code often; plus, this has more or less the same problem
with merging)

I have two repos, ghc-test and ghc. I develop in ghc and never edit in ghc-test. (This is important as otherwise, local, non-recorded edits can make your local validate succeed, although your patches do break the tree.)

First thing, each morning, I pull into ghc-test and run validate. When it breaks, I complain on cvs-ghc and unpull the patches I pulled this morning. (If I am not too busy, I may try to fix the problem, but that's optional.)

I develop in ghc and record patches there. Then, I push them to ghc- test and run validate on them. If validates goes through, I push to darcs.haskell.org.

Once in a while, I pull from ghc-test into ghc.

------

This scheme has a fairly low overhead for me. If ghc-test breaks, there are usually not that many patches to unpull, and I am somewhat isolated from head breakages. However, the **most important thing** is that everybody validates every single patch before pushing. Every head breakage that we can avoid safes the time of many people.

Manuel

_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to