"Best" setup for local mirrors.
John Arbash Meinel
john at arbash-meinel.com
Tue Nov 17 14:56:34 GMT 2009
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Algis Kabaila wrote:
> 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
> (lp:~algis.kabaila/easmy/fem),
> another branch of programs that is converted to a Finite Element
> Method
> (lp:~algis.kabaila/easmy/fem2)
> 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).
Generally Launchpad expects a "project" to have a single code base, and
a "super-project" to aggregate those. Consider:
http://launchpad.net/bzr
versus
http://launchpad.net/bazaar
The latter is aggregating all of the Bazaar eco-system.
This isn't a strict requirement, but the system is tuned for that sort
of operation. So if you have:
~algis.kabaila/easymy/fem
then the expectation is that
~algis.kabaila/easymy/fem2
would be something that you would want to merge into the first branch.
(eventually, hypothetically, etc.)
Versus:
~algis.kabaila/easymy-fem/trunk
and
~algis.kabaila/easymy-fem2/trunk
>
> 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.
This generally seems reasonable. You 'work' in the working location, and
sync via the 'mirror' location. As 'mirror' are bound branches, you can
be sure that they will stay in sync.
>
> 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
> message:
> 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
> message:
> 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
> message:
> 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.
I would guess that if you looked at *one* branch, things would stay
similar. 'bzr log' only shows a single branch. 'bzr-explorer' has the
option to show you the graph of one branch, or a group of branches.
>
> 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.
A 'repository' is a collection of branches. They don't have to be
related. However, if you ask to view the history of all branches in a
repository, then you are going to see what you saw. With the LaTeX
branches shown next to the Python branches, and their histories not
particularly related.
I don't know if bzr-explorer makes it easy to carve out a subset to
view, but the underlying commands support it. For example:
bzr qlog fem fem2
rather than
bzr qlog .
>
> 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
> it.
>
> So what is the recommended setup, if any?
>
> OldAl.
>
On *my* laptop, I have a single repository for bzr + all plugins, etc.
And then another one for Launchpad history, and another for Meliae, etc.
So I guess I do a bit of both. The plugins don't share any ancestry with
'bzr', but it isn't really worth my time to manage 1 repo per plugin.
Especially when 90% of them only have a single branch.
John
=:->
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAksCuaIACgkQJdeBCYSNAAPnxgCgxnb8acPW56Bo8jvb/orwumtY
zCkAnjI8o0VvAJtK8QMkAphcB76QH57v
=ZVL1
-----END PGP SIGNATURE-----
More information about the bazaar
mailing list