Add core.symlinks to mark filesystems that do not support symbolic links.
authorJohannes Sixt <johannes.sixt@telecom.at>
Fri, 2 Mar 2007 21:11:30 +0000 (22:11 +0100)
committerJunio C Hamano <junkio@cox.net>
Sat, 3 Mar 2007 00:58:05 +0000 (16:58 -0800)
commit78a8d641c14dc2f0a306d787fa1e42d400b3af4d
treef99b516580d660a3049cbd4c17151f2c8b784653
parent4808bec6f9b5fe414f0dbc2cc0445f54f28e9e9c
Add core.symlinks to mark filesystems that do not support symbolic links.

Some file systems that can host git repositories and their working copies
do not support symbolic links. But then if the repository contains a symbolic
link, it is impossible to check out the working copy.

This patch enables partial support of symbolic links so that it is possible
to check out a working copy on such a file system.  A new flag
core.symlinks (which is true by default) can be set to false to indicate
that the filesystem does not support symbolic links. In this case, symbolic
links that exist in the trees are checked out as small plain files, and
checking in modifications of these files preserve the symlink property in
the database (as long as an entry exists in the index).

Of course, this does not magically make symbolic links work on such defective
file systems; hence, this solution does not help if the working copy relies
on that an entry is a real symbolic link.

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Junio C Hamano <junkio@cox.net>
12 files changed:
Documentation/config.txt
Documentation/git-update-index.txt
builtin-apply.c
builtin-update-index.c
cache.h
config.c
diff-lib.c
entry.c
environment.c
read-cache.c
t/t2005-checkout-index-symlinks.sh [new file with mode: 0755]
t/t2102-update-index-symlinks.sh [new file with mode: 0755]