On Sat, 2006-10-21 at 21:41 +0200, Jakub Narebski wrote:
=C5=82:
I think you missed the point. Speaking for myself, I want to maintain
the identity of _my_ branches. If you clone one of them, I _don't_ care.
That's your branch. Branch identity as presented here is not intended to
be globally significant. It's locally significant.
OK, just to clarify what you are saying here:=20
1. revnos don't work because they don't serve the same purpose as revids
or git's SHA1 commit ids.
2. bzr does not support fully distributed development because revnos
"don't work" as stated in #1.
3. Ok, bzr does support distributed development, I just say it doesn't
because I think revids are ugly.
Thus, revids are ugly.
Is this really the argument you want to be making? I'm not disagreeing
with you; it's just that I'm not sure it's relevant.
Can we just put the whole "revnos don't work" thing to rest?
Revnos are only intended to be significant relative to a given branch.
They are not intended to serve as an absolute, global identifier.
Revnos + a url _are_ globally significant, but are not static except in
certain topologies.
Revids are globally significant and static in any topology.
If a user does not like or cannot use revnos, they may use revids.
Revnos are not a tool to be used for every job. In no way does that mean
that they are broken.
If a given developer or group of developers primarily use revnos or
revids, it _may_ indicate that _they_ have a bias towards central (or
star) or distributed development, but does not necessarily have any
bearing on the capability of the VCS being used.
I think that when I attempt to pull from one branch to another, if they
are identical, neither branch changes. Merging + pulling results in
identical history, causing revnos on the pulling branch to change. Just
merging maintains divergent views of the same history.=20
Perhaps bzr has a central bias in the view that each developer has the
option of seeing their own branch as the central focus of his/her
development. This view would be the same from each branch; each
developer views his/her own branch as special. If the developer does not
want to view their own branch specially, they would merge + pull rather
than just merging. If I remember correctly, abentley covered this
earlier in this whole "VCS comparison table" thread.
Anyway, much of this seems to be a disagreement over the definition of
"distributed VCS." Perhaps this is too simplistic, but to my inexpert
eyes, these appear to be the positions of each side:
Bzr: Branches and all shared history may be stored locally in disparate
locations, and all VCS functions are available locally.
Git: Same thing, except that all shared history must also be identically
ordered.
Did I get that right?
In general, as a mere _user_ of distributed VCS, all I care about is if
I can accurately point you to a particular commit or set of commits, and
that you can access them either in shared history or in a given branch.
The fact that the VCS does not require a central branch and facilitates
code interchange, means to me that it is distributed. As long as all
major uses are fully supported, being slightly biased toward one use
case or another is not a distinction I consider to be worth making.
-davidc
--=20
gpg-key: http://www.zettazebra.com/files/key.gpg