Branches are Bad? (was: Re: What are the strengths of Mercurial for you?)

John D. Mitchell jdmitchell at gmail.com
Sat Jan 10 06:51:32 UTC 2009


On Friday 2009.01.09, at 11:55 , Doug Philips wrote:
[...]
> Since branching happens with distributed version control, I am  
> guessing you really mean "named branches?"

Yes, I should have more clear.  "Branches" are the internal-to-a- 
single-repository things and "clones" are the separate, independent  
repository things.  Sorry about any confusion therefrom.

> For what my team uses them for(1) none of the "missing capabilities"  
> would make any difference.
> Could you elaborate a bit more on the exact problem/issue you have?

Sure they would but you've got something that sounds like it works for  
you as is so no big whup.  Or perhaps you've been able to internalize  
all of the rough edges and changed your workflow to avoid/work around  
them and so they aren't so noticeably anymore?

Truly, I'm not trying to be contentious or demand any changes in Hg  
(or Git or...) or the like.  I was just trying answer the gentleman's  
question honestly.

> (1) - we use named branches to do medium-length feature development.  
> Most of our day to day work ends up on short-ish branches that don't  
> have, or need, names. Our work flow is such that we have a common  
> "internal review" repo where changesets are pushed once individuals  
> are ready to have their work reviewed prior to release into the  
> externally used/visible 'stable' repo. This permits anyone to know  
> exactly what is under consideration and is a much easier workflow  
> than having a permanent webserver on each developer's system (we  
> span 10+ time zones). I don't see how any of hte missing  
> capabilities would be as convenient, but I'm open to learn!

So how do you deal with, for example:
* the "multiple head" problems?
* the forever growing disk usage?
* the dirty commit history?
* large/binary files?
* multiple product lines?
* backups?

Also, you can still follow the pull-based model and have centralized  
management by giving each developer their own area on the central  
server that only they can push to and everybody else can pull from.   
And yes, for those "agilistas" in the audience, this does work in a  
continuous integration world.

Again, if you've got a process and setup that works for you, I am  
totally happy about that (especially since you're using Hg instead of  
those other crap :-).

Hope this helps,
John




More information about the Mercurial mailing list