[commit: ghc] master: Merge branch 'master' of http://darcs.haskell.org/ghc (fd6587b)
Manuel M T Chakravarty
chak at cse.unsw.edu.au
Tue May 24 06:59:36 CEST 2011
> On 12/05/2011 16:40, Simon Peyton-Jones wrote:
>> | I think what SimonM described in the recent thread is basically what we want:
>> | - you develop in your working tree and commit patches there. At
>> | this point it's completely safe to rebase - the patches are only
>> | in one place.
>> I don't think so. Like I say, the branch is shared between several
>> collaborators. Each is modifying branch. Each is merging in changes
>> from the other. Each is (occasionally, to be sure) merging changes
>> from the HEAD).
> I was talking about development on the master branch when I made that comment that Manuel quoted above, but the idea does apply to shared development branches too. The idea is just this:
> When you have a set of commits that you have not yet
> pushed (or pulled) anywhere else, you can rebase them
> to eliminate merge patches before pushing.
> That applies to shared development branches as well as the master branch.
> I'm not saying anyone has to do this if they aren't comfortable with using rebase, but it does help reduce the noise on the list and clean up the history.
>> As I understand it, the moment you share a repo, you can't rebase any
>> more. I'd be delighted to learn otherwise.
> Perhaps pedantry, but this might help clear things up a bit: the moment you share a *commit*, you can't rebase it any more.
Yes, but I believe, we need to define the meaning of *sharing* in this context. I think it is fine to rebase a commit that was shared between a small team of people working on a particular new feature. in contrast, a commit that was shared with the larger community may not be rebased anymore. This distinction is important as otherwise commits bounced between two developers working in close cooperation could not be rebased anymore, which would not be what we want IMHO.
Given this, you could require that those small teams use their own git repos (say on GitHub) to share their not-yet-public commits. However, the GHC community seems to collaborate via c.h.o, so I think it makes sense to regard some branches (eg, the current ghc-generics branch) as "private" development branches. Only when commits from those branches make it into the master or onto stable branches should they be regarded as being public.
More information about the Cvs-ghc