The term "branch" is misleading (was: class 'intent' documentation)

Kevin Smith yarcs at qualitycode.com
Tue Dec 27 14:12:14 GMT 2005


John Yates wrote:
> 
> This crystallized for me my vague discomfort with the term "branch".
> To me branch suggests development that is subordinate to some trunk,
> a flavor of fork.  It is a term that focuses on the relationship
> of some work to other work.  The misleading connotations are
> especially jarring when starting a new project or when taking
> about the principal branch in a centralized development model.

I hit this conceptual speedbump when learning darcs. In that case, the 
refrain that made it easy was "working directory equals branch equals 
repository". Ohhhh. Strange, but straightforward once you think of it 
that way.

For bzr, it won't be that simple when there are true multi-branch repos, 
some of which won't have working directories. One way to justify the use 
  of "branch" would be to argue that everything is a branch of the empty 
branch, which leads to the fun idea that all projects are related to 
each other. (Insert religious note about unity here).

I think "line of development" is accurate and descriptive, but too long. 
As you point out, shortening that to "line" causes confusion with lines 
of code. I guess "lineage" could work. Other words from a thesaurus:
ancestry, train, progression, chain.

In the end, however, "branch" is used by all(?) the other decentralized 
(distributed) SCM tools. Consistent terminology between tools is a good 
thing, such as "repo" in place of "archive". Unless we find a perfect 
word that other projects would also be willing to adopt, I think 
"branch" is the best choice.

It's just important to make the documentation as clear as possible.

Kevin




More information about the bazaar mailing list