Add git-symbolic-ref

This adds the counterpart of git-update-ref that lets you read
and create "symbolic refs".  By default it uses a symbolic link
to represent ".git/HEAD -> refs/heads/master", but it can be compiled
to use the textfile symbolic ref.

The places that did 'readlink .git/HEAD' and 'ln -s refs/heads/blah
.git/HEAD' have been converted to use new git-symbolic-ref command, so
that they can deal with either implementation.

Signed-off-by: Junio C Hamano <junio@twinsun.com>
This commit is contained in:
Junio C Hamano
2005-09-30 14:26:57 -07:00
committed by Junio C Hamano
parent a876ed83be
commit 8098a178b2
16 changed files with 175 additions and 56 deletions

View File

@ -13,10 +13,13 @@
unset CDPATH
die() {
echo "$@" >&2
echo >&2 "$@"
exit 1
}
[ -h "$GIT_DIR/HEAD" ] &&
case "$(GIT_DIR="$GIT_DIR" git-symbolic-ref HEAD 2>/dev/null)" in
refs/*) : ;;
*) false ;;
esac &&
[ -d "$GIT_DIR/refs" ] &&
[ -d "$GIT_OBJECT_DIRECTORY/00" ]