mirror of
https://github.com/git/git
synced 2024-08-24 18:26:02 +00:00
Add support for negative refs
You can remove a ref that is packed two different ways: either simply repack all the refs without that one, or create a loose ref that has the magic all-zero SHA1. This also adds back the test that a ref actually has the object it points to. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
e1e22e37f4
commit
b37a562a10
6
refs.c
6
refs.c
|
@ -280,6 +280,12 @@ static int do_for_each_ref(const char *base, int (*fn)(const char *path, const u
|
|||
}
|
||||
if (strncmp(base, entry->name, trim))
|
||||
continue;
|
||||
if (is_null_sha1(entry->sha1))
|
||||
continue;
|
||||
if (!has_sha1_file(entry->sha1)) {
|
||||
error("%s does not point to a valid object!", entry->name);
|
||||
continue;
|
||||
}
|
||||
retval = fn(entry->name + trim, entry->sha1);
|
||||
if (retval)
|
||||
return retval;
|
||||
|
|
Loading…
Reference in a new issue