diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-05-05 02:03:09 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-05-05 02:03:09 +0200 |
commit | 770896e548d0e68ab120507895e1e878c5ee347c (patch) | |
tree | 789eaf8c1ac87a1d7115b0a47d1300ba191cff1d | |
parent | Teach "git-pull-script" about alternate HEAD's to pull.. (diff) | |
download | git-770896e548d0e68ab120507895e1e878c5ee347c.tar.xz git-770896e548d0e68ab120507895e1e878c5ee347c.zip |
Teach fsck-cache to accept non-commits for reachability analysis.
In particular, teach it about tags. Also, to make reachability actually
work for tags, we need to add the ref to the tagged object.
-rw-r--r-- | fsck-cache.c | 8 | ||||
-rw-r--r-- | tag.c | 2 |
2 files changed, 5 insertions, 5 deletions
diff --git a/fsck-cache.c b/fsck-cache.c index fb0d82f332..e328cec75d 100644 --- a/fsck-cache.c +++ b/fsck-cache.c @@ -295,14 +295,12 @@ int main(int argc, char **argv) continue; if (!get_sha1(arg, head_sha1)) { - struct commit *commit = lookup_commit(head_sha1); - struct object *obj; + struct object *obj = lookup_object(head_sha1); - /* Error is printed by lookup_commit(). */ - if (!commit) + /* Error is printed by lookup_object(). */ + if (!obj) continue; - obj = &commit->object; obj->used = 1; mark_reachable(obj, REACHABLE); heads++; @@ -49,6 +49,8 @@ int parse_tag(struct tag *item) goto err; item->tagged = parse_object(object); + if (item->tagged) + add_ref(&item->object, item->tagged); type_line = data + 48; if (memcmp("\ntype ", type_line-1, 6)) |