On 20/10/06, Carl Worth <cworth@cworth.org> wrote:
With this sort of setup, I would publish my branches in a directory
tree like this:
/repo
/branch1
/branch2
I make "/repo" a Bazaar repository so that it stores the revision data
for all branches contained in the directory (the tree contents,
revision meta data, etc).
The "/repo/branch1" essentially just contains a list of mainline
revision IDs that identify the branch. This could probably be just
store the head revision ID, but there are some optimisations that make
use of the linear history here.
If the ancestry of "/repo/branch2" is a subset of branch1 (as it might
be if the in the case of forked then merged projects), then all its
revision data will already be in the repository when branch1 was
imported. The only cost of keeping the branch around (and publishing
it) is the list of revision IDs in its mainline history.
For similar reasons, the cost of publishing 20 related Bazaar branches
on my web server is generally not 20 times the cost of publishing a
single branch.
I understand that you get similar benefits by a GIT repository with
multiple head revisions.
With the repository structure mentioned above, the cost of publishing
multiple branches is quite low. If I continue to work on the project,
then there is no particular bandwidth or disk space reasons for me to
cut off access to my old branches.
For similar reasons, it doesn't cost me much to mirror other people's
related branches if I really care about them.
If you need that level of stability then you want the revision
identifier in both the GIT and Bazaar cases.
As for simplicity, note that Bazaar doesn't extract any special
meaning from the "$email-$date-$random" format of the revision
identifiers. The only property it cares about is that they are
globally unique. For example, revision identifiers generated by the
Arch -> Bazaar importer have a different format and are handled the
same.
That is correct. The revision numbers assigned to particular
revisions in the context of one branch won't necessarily be the same
as the numbers in another branch.
I can't say anything about the dotted revision numbers that have been
recently introduced to Bazaar, but I have definitely found the simple
numeric revision numbers for mainline revisions useful when using
Bazaar. The revisions with these short revision numbers are generally
the ones I am most interested in when working on that branch.
It hasn't ever seemed a problem those revisions no longer had short
revision numbers assigned to them when someone else merged my branch.
Using Bazaar terminology, the revision numbers are specific to a
particular _branch_. If I copy a branch from one repository to
another, its revision numbers will stay the same. And conversely, two
branches in the same repository can have different revision numbers.
I don't think anyone is saying that universally unique names are bad.
But I also don't see a problem with using shorter names that only have
meaning in a local scope.
I've noticed some people using abbreviated SHA1 sums with GIT. Isn't
that also a case of trading potential global uniqueness for
convenience when working in a local scope?
James.
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html