Re: VCS comparison table
From: David Clymer <hidden>
Date: 2016-06-15 22:42:45
On Mon, 2006-10-23 at 14:54 +0200, Jakub Narebski wrote:
On Mon, Oct 23, 2006 David Clymer wrote:quoted
On Sun, 2006-10-22 at 22:06 +0200, Jakub Narebski wrote:quoted
David Clymer wrote:quoted
quoted
quoted
2. bzr does not support fully distributed development because revnos "don't work" as stated in #1.Bazaar is biased towards centralized/star-topology development if we want to use revnos. In fully distributed configuration there is no "simple namespace".So revnos aren't globally meaningful in fully distributed settings. So what? I don't see how this translates into bias. There is a lot of functionality provided by bazaar that doesn't really apply to my use case, but it doesn't mean that it is indicative of some bias in bazaar.First, bzr is biased towards using revnos: bzr commands uses revnos by default to provide revision (you have to use revid: prefix/operator to use revision identifiers), bzr commands outputs revids only when requested, examples of usage uses revision numbers.
Agreed. Of course, I want the simplest case to be the simplest. When working on my own branch, regardless if it is a standalone project or part of a distributed one, I don't want to have to type SHA hashes or revids. Numbers serve my purposes best in this case. When I communicate with other distributed developers, I can and should use revids.
In order to use revnos as _global_ identifiers in distributed development,
you need central "branch", mainline, to provide those revnos. You have
either to have access to this "revno server" and refer to revisions by
"revno server" URL and revision number, or designate one branch as holding
revision numbers ("revno server") and preserve revnos on "revno server"
by using bzr "merge", while copying revnos when fetching by using bzr "pull"
for leaf branches. In short: for revnos to be global identifiers you need
star-topology.Ok. Let's not repeat this again. I think I said this once, and you've said it in two following emails. It's a given. Assume that we all know it.
Even if you use revnos only locally, you need to know which revisions are "yours", i.e. beside branch as DAG of history of given revision you need "ordered series of revisions" (to quote Bazaar-NG wiki Glossary), or path through this diagram from given revision to one of the roots (initial, parentless revisions). Because bzr does that by preserving mentioned path as first-parent path (treating first parent specially), i.e. storing local information in a DAG (which is shared), to preserve revnos you need to use "merge" instead of "pull", which means that you get empty-merge in clearly fast-forward case. This means "local changes bias", which some might take as not being fully distributed.
"local changes bias" I can buy that. I even like it. I don't even care if that makes bazaar "not fully distributed." I don't think the distinction between "fully" and "almost, except for some technicality" distributed is one that has much practical value. -davidc -- gpg-key: http://www.zettazebra.com/files/key.gpg
Attachments
- signature.asc [application/pgp-signature] 189 bytes