Kevin F. Quinn wrote:
> On Sat, 21 Apr 2007 12:00:55 +0200
> Thilo Bangert <[EMAIL PROTECTED]> wrote:
> 
>>> I do the same.  The '$Header: $' tells me which version of a file in
>>> the CVS tree I last synced to in my overlay, then I can just do a
>>> cvs diff on the tree to get a patch of differences since then.  Very
>>> useful.
>> right - but this functionality would not go away - it would just have
>> to be implemented differently. a potential move to git would make
>> this much more easy, if i am not mistaken.
> 
> By "implemented differently" you mean "by adding extra steps and data
> to the synchronisation process".  Currently, I compare the Header field
> in my overlay (which SVN doesn't touch) with that in the Gentoo CVS,
> and use the difference to drive the 'cvs diff' command to get a patch.
> 
> Removing the header would mean I'd have to record the origin version
> somewhere, and keep that up-to-date whenever the file is
> re-synchronised.
> 
> Having said that, it only works for me because my overlay is in SVN and
> and is not configured to process CVS header keywords.
> 
> However I can honestly say that in my experience, the file revision
> identification is _always_ recorded in the file - I've never yet seen
> an SCM used in practice that didn't have that information.  The reason
> people put that information in, is so that when the file is taken out
> of the context of the SCM repository, it's still clear where it came
> from.  This is precisely how I'm using it.

GIT records the content of files in 'blobs', so the only keyword var
that makes sense in a file is $blobId$, which would expand to a SHA1
checksum of the file.  The design here is to re-use blob's when the SHA1
matches to save on computation.  Since $blobID$ only really changes when
the content changes (ie they are tied together) there is no 'loss' in
having a $blobId$.

If you put something like author in there, the author may change, or the
author may be the same for every commit to a particular file.  Binding
the author means you change the checksum of the file every time the
author changes, so if I commit rev1 and I commit rev2 and then you
revert the file back to rev1, if we have $header$, the SCM wouldn't be
able to re-use the blob from rev1 because my name is in the blob,
instead of yours.  I'll spare you the details[1].

PS:  We aren't switching version control systems as far as I'm aware.
Robin is just doing research into moving to git.  The whole point of his
inquiry is 'is anyone using $header in a manner than cannot be ported to
using $blobid$'.

[1] http://thread.gmane.org/gmane.comp.version-control.git/44750
-- 
[EMAIL PROTECTED] mailing list

Reply via email to