tech-repository archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: BitKeeper open-sourced

On Sun, Jun 05, 2016 at 05:03:20PM -0400, Wayne Scott wrote:
 > Your strong reaction leads me to suspect there is a confusion of terms.

No, I don't think so.

I agree git is not a model one should base one's worldview on, and
git's notion of what it calls "branches" is strange; however, in most
other systems there's a notion of a branch that's a distinguished
subgraph of the overall commit graph and you can have more than one at
a time in the same repository, tell them apart, and so forth.

Mercurial started out with the idea they could use repository clones
for branching, but quickly found it wasn't satisfactory and added real
("named") branches.

There are a number of issues that can arise when trying to use clones
for branches, but the most serious for a large project with a
globe-spanning infrastructure are probably (1) management and (2)
accidentally pushing changesets to the wrong repo.

While it's easy to create a private branch, if you want to make a
project-level branch you have to create a canonical repo for the new
branch, name it somehow, make it downloadable, tell people where to
get it... all of which requires a lot of manual administration that
disappears given native support for branches. (E.g. in Mercurial all
you have to do to create a new project level branch is "hg branch
newstuff", hg commit, hg push)

There are things you can do to make it harder to push changes to the
wrong repo (e.g. use something like a blacklist extension to ban the
base changeset of each branch from each other branch and from the
trunk) but this also requires manual administration.

Anyway, NetBSD base has several dozen branches (perhaps one dozen of
which are really live) but this number is artificially low because
branching in CVS is such a pain. I think this is substantially too
many for branches-as-clones to be viable.

That said, I'm speaking from experience with Mercurial. I don't know
how BK works internally.

David A. Holland

Home | Main Index | Thread Index | Old Index