Should I Change To Bazaar
A. S. Budden
abudden at gmail.com
Fri Jan 16 14:05:50 GMT 2009
Dear all,
I am considering changing version control system (I currently use
subversion) and have been reasonably impressed by what I have read so
far about Bazaar. However, I accept that my use of the system is
probably not particularly conventional, so I'd be interested to hear
this list's opinion on whether Bazaar would be appropriate to me (and
why). I hope that this is not considered too demanding. My current
(and intended) use of version control systems is described below;
apologies for the length.
If anyone has any useful pointers on how Bazaar (or anything else for
that matter) would fit with this usage, I would be extremely
interested to hear your thoughts.
Many thanks in advance,
Al
My use of version control:
I currently use two main version control systems: PVCS (which I
detest, but which is used in my company) and subversion (which I like,
but which has a few limitations that makes me consider the possibility
of changing). For most home projects (as well as things like my
~/.vim directory and some relatively small, non-shared work projects),
I use subversion exclusively. On most (but not all) work projects, I
use PVCS for the collaborative part (checking in major changes when
I'm sure it all works nicely) and subversion for regular commits
(checking in any changes whether they break things or not as I am the
only user of the subversion repository). Typing "svn status" or "svn
ci" at the cygwin prompt is easier than working out which files in
which directories have changed and checking them in one folder at a
time (the PVCS way - ick)
I use Windows and Linux (work and home) and (at the moment) the same
repository for both. For the vast majority of projects I work on, it
is fine for LF line-feeds to be used throughout: the Windows tools
cope, so I use cygwin subversion as it keeps things nice, easy and
consistent.
I keep my subversion repository on a Freecom Toughdrive and plug it
into whatever computer I am using at the time. I run svnserve and
connect to the repository with svn://localhost. This simplifies
things as I often log onto different Windows computers with the
working folder on the network, but the Toughdrive mapped as a
different drive letter: I don't have to do "svn switch" every time I
use a different PC, just use a different command line alias for
svnserve. It also shortens the URLs: the one thing I miss from CVS
was bash tab completion when typing "cvs co".
Most (but not all) of my projects have single development lines (the
'trunk'), with a number of tags and no branches. A few (very few)
have a main development line and a lot of branches. One in particular
is for a general development platform for doing "quick use"
microcontroller test platforms. The trunk contains all of the generic
code (drivers for the peripherals on the development board etc) and
some outline "App" code for the specific stuff. I currently do "svn
cp" to create a branch for each new project, but I find the merging in
subversion quite tedious as I'd like any change to the files
associated with the trunk (whether changed in the trunk or the
branches) to propagate through to the trunk and all branches (this is
one of the only things that would be easier in PVCS).
In general, I quite like the centralised repository approach, but I
notice that Bazaar seems quite flexible in its approach.
What I'd like:
* Easier merging of core files across trunk and branches - keep
specific files in sync while changing others independently
* Commits should go directly to the repository on the Toughdrive (as I
think of the commit partly as a backup as well as a version-management
system)
* Two parallel central repositories.
The latter of these two is the reason that made me wonder about
Bazaar, so I'll explain it in more detail. As I said earlier, I
currently have my repository on my Toughdrive. This makes all the
repository access very fast (USB2) and I almost always have the
Toughdrive with me. If I lose the Toughdrive.... oh dear. I back it
up periodically, but on a typical (relatively busy and
multiple-project) day I'll probably make 30+ commits. I probably back
up my Toughdrive once every couple of weeks. I am currently
considering getting a Freecom Network Drive Pro. What I'd like to do
is have a repository on the Network Drive Pro AND on the Toughdrive.
When I'm at work I will generally make commits to the Toughdrive (as
it will be quicker and won't require me to make the Network Drive Pro
accessible to the outside world, although I may decide to allow
ssh-based remote access as well). When I'm at home, I will often make
commits to the Network Drive Pro. I'd like it to be possible, fast
and straightforward to bring the two repositories into line and
thereby backup the Toughdrive and the Network Drive Pro repository (it
will be relatively rare, with the possible exception of ~/.vim, for me
to be working on the same project at home and work, so there shouldn't
be too many merge problems, but I'd like these to be handled
gracefully).
Thanks again for any suggestions.
More information about the bazaar
mailing list