Store peeled refs in packed-refs (take 2).
commitf4204ab9f6a192cdb9a68150e031d7183688bfeb
authorJunio C Hamano <junkio@cox.net>
Wed, 22 Nov 2006 07:36:35 +0000 (21 23:36 -0800)
committerJunio C Hamano <junkio@cox.net>
Wed, 22 Nov 2006 07:37:35 +0000 (21 23:37 -0800)
tree3c9402e5a9e55dadf6477e44904fcc86fac7c8be
parentcf0adba7885342e1bbcf0689fece9d13e39784b4
Store peeled refs in packed-refs (take 2).

This fixes the previous implementation which failed to optimize
repositories with tons of lightweight tags.  The updated
packed-refs format begins with "# packed-refs with:" line that
lists the kind of extended data the file records.  Currently,
there is only one such extension defined, "peeled".  This stores
the "peeled tag" on a line that immediately follows a line for a
tag object itself in the format "^<sha-1>".

The header line itself and any extended data are ignored by
older implementation, so packed-refs file generated with this
version can still be used by older git.  packed-refs made by
older git can of course be used with this version.

Signed-off-by: Junio C Hamano <junkio@cox.net>
builtin-pack-refs.c
builtin-show-ref.c
refs.c
refs.h