[RFC]New style of revision id [Was Re: VCS comparison table]

Goffredo Baroncelli kreijack at alice.it
Mon Oct 23 23:17:56 BST 2006


On Monday 23 October 2006 21:18, Linus Torvalds wrote:
> 
> On Mon, 23 Oct 2006, Jelmer Vernooij wrote:
> >
> > Bzr stores a checksum of the commit separately from the revision id in
> > the metadata of a revision. The revision is not used by itself to check
> > the integrity of a revision.
> 
> That wasn't what I was trying to aim at - the problem is that the bzr 
> revision ID isn't "safe" in itself. Anybody can create a revision with the 
> same names - and they may both have checksums that match their own 
> revision, but you have no idea which one is "correct".

BTW, bzr has a command (testament) which generates a checksum on the basis of 
the inventory ( file path, file-id, checksum ), comment, committer, 
revision-id..... So that checksum is 1:1 to the snapshot of the tree at a 
given time.

The big difference with git, is that the testament doesn't evaluate 
the "testament" of the parent, so the testament is 1:1 to the revision, but 
not 1:1 to the full history.

Moreover bzr has the infrastructure to sign with a GPG key that checksum...

But I agree with Linus that the testament ( the bzr checksum ) isn't very 
integrated with the usual bazaar workflow as the git "revision-ID".

From a bazaar developer point of view I think if it is possible to switch from 
a pseudo-random revidion id, to a checksum basis revision id: the checksum 
can be computed on the basis of the sha1 of the files, and 
timestamp/commiter/parent-revision(s)/properties.

This new style of revid can be in the form
<user>@<host>-<date>-<cksum>

Yes, the first three field are redundant: but so the change isn't too 
dramatic ! :-)

Any idea ?

[...]
> 		Linus
Goffredo
-- 
gpg key@ keyserver.linux.it: Goffredo Baroncelli (ghigo) <kreijack at inwind.it>
Key fingerprint = CE3C 7E01 6782 30A3 5B87  87C0 BB86 505C 6B2A CFF9




More information about the bazaar mailing list