Teach update-ref about a symbolic ref stored in a textfile.
authorJunio C Hamano <junkio@cox.net>
Mon, 26 Sep 2005 02:30:24 +0000 (19:30 -0700)
committerJunio C Hamano <junkio@cox.net>
Sun, 2 Oct 2005 06:19:32 +0000 (23:19 -0700)
commit9b143c6e155a8eead165b2a813b533e0f3e0018a
tree49593ba36cdb22b5b3011b0a2ede03017fad3b47
parented1aadf1b0cb4afc7cb0aaf4cec4f5ad84e3307d
Teach update-ref about a symbolic ref stored in a textfile.

A symbolic ref is a regular file whose contents is "ref:", followed by
optional leading whitespaces, followed by a GIT_DIR relative pathname,
followed by optional trailing whitespaces (the optional whitespaces
are unconditionally removed, so you cannot have leading nor trailing
whitespaces).  This can be used in place of a traditional symbolic
link .git/HEAD that usually points at "refs/heads/master".  You can
instead have a regular file .git/HEAD whose contents is
"ref: refs/heads/master".

[jc: currently the code does not enforce the symbolic ref to begin with
 refs/, unlike the symbolic link case.  It may be worthwhile to require
 either case to begin with refs/ and not have any /./ nor /../ in them.]

Signed-off-by: Junio C Hamano <junkio@cox.net>
update-ref.c