Bazaar Repository Structure, Branches, Tags

JetMark extrapic at extrapic.com
Tue Jun 3 09:34:02 BST 2008


I am an experianced CVS user. I have used CVS enhanced by various scripts and
hooks and am now considering Bizaar as a replacement. Like many others I am
fed up with CVS, fully aware of how much better a VCS system could be, but
still looking for a sytem that meets minimum requirements first before bells
and whistles are taken into account. 

I have imported some of my CVS repositories using cvsps-import.  It has
created two additional directory levels between the top level of my
repository and the highest levels of files in the repository.  The first
level is called "branches" and "tags" the second contains all of my cvs
branch and tag names. 

Its not just Bizaar that does this type of thing, for a while I considered
subversion and a major point against subversion (in my view) is that it
seems to have confused/polluted the directory-structure name space with that
of the tag names name space. Now it seems that Bizaar does the same. There
are several aspects of this that I just do not understand and want help in
understanding from people more knowlegable than I. 

In CVS, when checking out to do a build (so this is a checkout not for
modification purposes.) If I have a tag of any description, weather its a
branch tag, HEAD or some other tag, that is all I need to know. It appears
that in Bazaar I need in fact to know if the tag I have been given is a
branch or a tag, and worse, that the name space here is not mutually
exclusive. In other words, I can create branches and tags with the same name
that are not the same. Is this true? 
[Question 1] 

Second I think its very strange that Bizaar would incorporate tag
information into the repository structure. To checkout I need to do

bzr checkout mytopdirectory/[branch or tag identifier]/[branch or tag name] 
. 

The 3rd word on this line looks like a directory path, and as far as Bazaar
is concerned IS a directory path, but as far as the external project is
concerned is NOT a directory path since what we have here is leakage of the
internal repository structure from inside Bizaar (where it should be
private) into the actual project! Not only that, but the default options on
checkout if the 4th option (the target location) is omitted is to create
this directory name, so extending this name pollution to the users directory
structure. Surely the first aim of any VCS is to separate the repository
private information from what you put in it. As it happens, with CVS the
directory structure of the repository is the same as the files in it, but it
doesnt have to be like that: you could write a CVS server where all the
information was stored in one file, a database or whatever, the user view of
the system is through the interface and ought to allow anything to be stored
under any tag. [Question 2] Why is it done like this? Why do other modern
VCS systems appear to make the same mistake?  Is it a mistake or do I just
not get something here? 

Lastly if I use Bizaar, its likely I will want to use the hooks. These will
be complex, custom, and require creation and maintenance over a period of
time. Am I disadvantaged by the fact that I am not very good at python and
not really keen to spend time learning yet another language? Its bad enough
Bizaar "runs on anything that will run Python 2.4" (All the systems we use
use only 2.3) but I dont see anything about how to use an executable as a
hook. Even boilerplate python code showing how to do this would be a useful
addition to the documentation. 
[Question 3] 


-- 
View this message in context: http://www.nabble.com/Bazaar-Repository-Structure%2C-Branches%2C-Tags-tp17618717p17618717.html
Sent from the Bazaar - General Discussion mailing list archive at Nabble.com.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://lists.ubuntu.com/archives/bazaar/attachments/20080603/1d285909/attachment.htm 


More information about the bazaar mailing list