Shallow clone: do not ignore shallowness when following tags
authorAlexandre Julliard <julliard@winehq.org>
Sat, 11 Nov 2006 13:57:23 +0000 (14:57 +0100)
committerJunio C Hamano <junkio@cox.net>
Fri, 24 Nov 2006 23:42:49 +0000 (15:42 -0800)
Tags should be considered when truncating the
commit list. The patch below fixes it, and fetches the right number of
commits for each tag. However the correct fix is probably to not fetch
historical tags at all.

Signed-off-by: Junio C Hamano <junkio@cox.net>
shallow.c

index 58a7b20d793cbc71ab924d5f5aedf28cd01ca32a..2db1dc428f80bb4e28ca5a059720433d12131d4a 100644 (file)
--- a/shallow.c
+++ b/shallow.c
@@ -1,5 +1,6 @@
 #include "cache.h"
 #include "commit.h"
+#include "tag.h"
 
 static int is_shallow = -1;
 
@@ -54,7 +55,7 @@ struct commit_list *get_shallow_commits(struct object_array *heads, int depth,
                if (!commit) {
                        if (i < heads->nr) {
                                commit = (struct commit *)
-                                       heads->objects[i++].item;
+                                       deref_tag(heads->objects[i++].item, NULL, 0);
                                if (commit->object.type != OBJ_COMMIT) {
                                        commit = NULL;
                                        continue;