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