summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: e1e22e3)
raw | patch | inline | side by side (parent: e1e22e3)
author | Linus Torvalds <torvalds@osdl.org> | |
Tue, 12 Sep 2006 03:10:15 +0000 (20:10 -0700) | ||
committer | Junio C Hamano <junkio@cox.net> | |
Mon, 18 Sep 2006 02:09:11 +0000 (19:09 -0700) |
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>
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>
refs.c | patch | blob | history |
index 5f80a68922c913ef62932657ddf621a2babc4a76..72e22834fa3c78e5b968425a0586dbc3ed4ea397 100644 (file)
--- a/refs.c
+++ b/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;