Promoting the use of Mercurial; was: Re: gnome dvcs survey results

Theodore Tso tytso at mit.edu
Sat Jan 10 04:43:26 UTC 2009


On Fri, Jan 09, 2009 at 04:37:08PM -0600, Matt Mackall wrote:
> The purpose of a version control system is to record history. If tags
> are mutable, then they must be part of history. Otherwise, you'll be
> unable to answer questions like 'when was this tag added? who changed
> this tag? and what was it before?'. 

This assumes that tag _are_ history.  Another way to think about
things is to say that tags are a *pointer* to history.  Some
historiams claim September 4, 476 as the fall of the Roman Empire;
others use 378 A.D., still others 410 A.D., and others go as late as
565 A.D.  *History* is immutable; what tags we place on history isn't
necessarily part of history.

> A decentralized tool has to assume everyone has equal privileges. This
> means everyone can add and modify tags in their own repos. It's also
> safe to assume that people will want other people's public tags. Ergo,
> there must be the same accountability for tags as there is for
> everything else. Which means the most reasonable thing to do is use the
> same mechanism.
> 
> If your workflow is 'only Linus gets to add tags' and 'only Linus gets
> to push to the official repo' and you can trust everyone to stick to
> that then it's not much an issue. But for everyone else it is. 

I like the model that says, if a tag is important, you PGP sign it,
and anyone can PGP sign tags --- so it's not reserved to Linus.  Also,
if you have a tag in your repository, and you pull from another
repository that has that tag pointed to a different commit, the SCM
should throw warning message and refuse to update the tag.  So users
have to take affirmative action in order to accept a changed tag into
their repository --- and given that tags rarely change, this is not a
big deal.  Of course, this is the model that git uses, but regardless,
I think it's a very stright forward and easy-to-understnd model.

Regrds,

  	       	    	    	    			  - Ted



More information about the Mercurial mailing list