Re: git gc seems to break --symbolic-full-name
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jul 21, 2017, 18:56 UTC
- Message-ID
- <xmqqbmodhb5h.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <234492d7-7fd6-f847-8b85-010732ff43b6@list.ru>
Stas Sergeev <stsp@list.ru> writes:
Show 13 quoted lines
> I do the following: > > $ git rev-parse --symbolic-full-name devel > refs/heads/devel > $ ls -l .git/`git rev-parse --symbolic-full-name devel` > -rw-rw-r-- 1 stas stas 41 июл 21 15:05 .git/refs/heads/devel > > This is fine. But after git gc: > > $ git rev-parse --symbolic-full-name devel > refs/heads/devel > $ LC_ALL=C ls -l .git/`git rev-parse --symbolic-full-name devel` > ls: cannot access '.git/refs/heads/devel': No such file or directory
This is expected, and in the modern world (like, after year 2007), a refname "refs/heads/foo" does *not* mean that there is a file with such a path under .git/ directory. "rev-parse" does not return any "path" in the filesystem sense.
See "git pack-refs --help", and depending on what you want to learn about the ref in question, perhaps "git show-ref refs/heads/devel" is what you want.