[PATCH] git and symlinks as tracked content
Allow to store and track symlink in the repository. A symlink is stored the same way as a regular file, only with the appropriate mode bits set. The symlink target is therefore stored in a blob object. This will hopefully make our udev repository fully functional. :) Signed-off-by: Kay Sievers <kay.sievers@vrfy.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:

committed by
Linus Torvalds

parent
5210372fe4
commit
8ae0a8c514
10
read-cache.c
10
read-cache.c
@ -13,6 +13,16 @@ int cache_match_stat(struct cache_entry *ce, struct stat *st)
|
||||
{
|
||||
unsigned int changed = 0;
|
||||
|
||||
switch (ntohl(ce->ce_mode) & S_IFMT) {
|
||||
case S_IFREG:
|
||||
changed |= !S_ISREG(st->st_mode) ? TYPE_CHANGED : 0;
|
||||
break;
|
||||
case S_IFLNK:
|
||||
changed |= !S_ISLNK(st->st_mode) ? TYPE_CHANGED : 0;
|
||||
break;
|
||||
default:
|
||||
die("internal error: ce_mode is %o", ntohl(ce->ce_mode));
|
||||
}
|
||||
if (ce->ce_mtime.sec != htonl(st->st_mtime))
|
||||
changed |= MTIME_CHANGED;
|
||||
if (ce->ce_ctime.sec != htonl(st->st_ctime))
|
||||
|
Reference in New Issue
Block a user