"Best" setup for local mirrors.

Algis Kabaila akabaila at pcug.org.au
Sun Nov 15 22:43:02 GMT 2009

This is a user's question. 
Background: I am reorganizing my Python based structural analysis program, 
which is a part of a project named 'easmy' 
(Engineering Analysis of Structures Made easY). The project is made up of at 
least two different, but inter-related parts - a LateX text with diagrams that 
presents in simple form the analysis of civil and aeronautical structures and
a program that reveals it in more detail. So on Launchpad registered are one 
project, "easmy" and one (as yet nearly empty) developers' group. 

The branches are: a legacy programs for the analysis of structures made of 
prismatic members 
another branch of programs that is converted to a Finite Element 
and a branch of LateX files (as well as a 'finished' pdf file that I would like 
to host in a different location with a simple link to it). 

My PC's all have a separate data partition that is common to all versions
of GNU/Linux OS's. It is mounted on /dat, which is just below root.

To mirror locally what is in launchpad, there is a local partition 
/dat/mirror with three subdirectories that have pristine copies of 
the three branches stored on the launchpad.

On another location, /dat/work are the versioned working copies of the three
branches, so that my current work flow is:
a. Work on /dat/work/fem2 and frequently commit locally.

b. Less frequently, push /dat/work/fem2 to /dat/mirror/fem2 which is 
bound to a Launchpad branch.

I use CLI bzr for creating directories and their backups and 
bzr-explorer to look at what is happening and learn more about it.

When I looked at the history via bzr-explorer 
(Bazaar -> Explore -> Log History)
the results surprised me.  From CLI the log looks simple:

ak at primo:/dat/mirror/fem2$ bzr log -r 23..
revno: 25
committer: Al Kabaila <algis.kabaila at gmail.com.au>
branch nick: fem2
timestamp: Sun 2009-11-15 17:59:51 +1100
  polishing up.
revno: 24
committer: Al Kabaila <algis.kabaila at gmail.com.au>
branch nick: fem2
timestamp: Sun 2009-11-15 13:49:49 +1100
  cleaning up style.
revno: 23
committer: Al Kabaila <algis.kabaila at gmail.com.au>
branch nick: plugins-fem2
timestamp: Sun 2009-11-15 11:56:45 +1100
  finishing touches to plugins
ak at primo:/dat/mirror/fem2$ 

From the bzr-explorer I get much more complex picture of revisions.
Basically. there appears to be a kind of mixture of revisions of all 
three branches, though the contents of the branches are not mixed up.

A question arises from all this - is the repository meant to hold an
original branch and its feature_branches that are merged from time to time?
The "Log History" of the original branch would then indeed represent what
changes are occurring and how they occurred. If that is the setup that
is envisaged, then I should have at least two local repositories - one 
for Python programs and one for LateX source.

I realise that different solutions are feasible, but I would like to find out
what the mainstream is. I would prefer to swim with the flow and not against 

So what is the recommended setup, if any?


Algis Kabaila, MEngSc, PhD(Eng)

More information about the bazaar mailing list