Subject: Re: git and symlinks as tracked content

From: Junio C Hamano <[email-masked]>
Date: Tue, 03 May 2005 14:30:16 -0700

>>>>> "LT" == Linus Torvalds <[email-masked]> writes:

LT> On Tue, 3 May 2005, Andreas Gal wrote:

>> Yuck. Thats really ugly. Right now all files have a uniform
>> touch to them.  For every hash you can locate the file,
>> determine its type/tag, unpack it, and check the SHA1
>> hash. The proposal above breaks all that. Why not just
>> introduce a new object type "dev" and put major minor in
>> there. It will still always hash to the same SHA1 hash value,
>> but fits much better in the overall design.

LT> Hey, I don't personally care that much. I don't see anybody using 
LT> character device nodes in the kernel tree, and I don't think most SCM's 
LT> support stuff like that anyway ;)

LT> If you want to make it a blob (and have a use for it), go wild. 

Introducing "dev" type, as Andreas suggests, is wrong.  This
this should be done in the same way as you suggested for the
symlink case.  Store a blob object with those chrdev or blkdev
modes whose contents are of form:

    major=14
    minor=4
    owner=root
    group=audio
    perm=0660

This would impact the diff side least, and for the cache side it
does not matter in storing and merging.  checkout-cache still
needs to know about this.