On Thu, 2011-05-05 at 13:49 -0700, Robert Bradshaw wrote: > Surely other projects have dealt with this.
We have for instance adopted a very strict set of policies on that: 1) Never branch of anything except for master or x.y.z-stable branches 2) Never rebase master or x.y.z-stable branches, unless everybody agrees 3) Never do fast-forward merges, always rebase your stuff before merge 4) Never commit directly to master, use feature branches That is, all branches are either in the personal namespace of the developers for experimental stuff, or in the main namespace prefixed with the ticket number. I admit that this is quite restrictive, but in the end, it doesn't take so much effort to follow and the history is very nice and easy to understand, I even literally follow the development by reading the history, when I am unable to track IRC etc. Of course, you don't have to copy this blindly, but few permissive conventions, which do not impose additional load on the developers like 1) Always branch from master 2) Never rebase master would definitively not hurt. I was recently trying to bisect Cython, as I was under impression that recent commits broke something for me (it turned out not to be the case, but that's not the point) and the history is just to horribly confusing that I couldn't make any sense out of it. All these branches from branches from branches which gets merged in random order make it impossible for an outside person to make any sensible use of this information... Hope that helps, -- Sincerely yours, Yury V. Zaytsev _______________________________________________ cython-devel mailing list cython-devel@python.org http://mail.python.org/mailman/listinfo/cython-devel