[rfc] bzr-colo into core

Eli Zaretskii eliz at gnu.org
Tue Mar 22 19:12:56 UTC 2011


> Date: Tue, 22 Mar 2011 07:14:05 +0100
> From: Nicholas Allen <nick.allen at onlinehome.de>
> Cc: Bazaar <bazaar at lists.canonical.com>
> 
> > People working on large trees really want to have just one on-disk
> > checkout at a time, so they don't use too much disk space and so they
> > don't waste time building a new tree just to start a new branch.  
> I diagree completely. If you have a large tree or use a compiled
> language like C++ colocated branches are almost definitely what you
> don't want. You need multiple working trees so that you don't have to
> rebuild each time you switch a branch. If there's only one tree then
> when you switch the whole project will likely have to be recompiled
> again (especially if a common header file is modified because of the
> switch). This would be unacceptable for me.

I obviously agree, since I wrote that in almost these very words just
yesterday.

However, in all fairness, there could be valid use cases for colocated
branches even in very large trees: those are the cases that the
branches are very similar, e.g. only a few files are different and no
significant changes in the structure of the directories, no or very
few removed/added files, etc.  For this situation, colocated branches
are actually a big win, because the initial cost of rebuilding
everything after creation of the branch is completely avoided, and
switching should be fast and doesn't require rebuilding everything.

OTOH, the use cases where one would _not_ want colocated branches are:

 . branches that diverged significantly

 . branches that are configured in different ways (e.g., with/without
   some optional library)

 . branches that are built for different target systems



More information about the bazaar mailing list