Re: [PATCH] First cut at libifying revlist generation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Linus Torvalds <torvalds@xxxxxxxx> writes:

> Comments? I think this is safe to apply, because I've done a diff of the 
> old non-split rev-list.c against both the new rev-list.c and revision.c, 
> and all the changes _look_ like just moving things around and taking the 
> new "struct rev_info" into account.

I think you would need something the attached patch, at least.

I have a suspicion that this was your easter egg to see how
careful I am reading what I apply -- and I failed.  Johannes
gets a test-pilot star for this.  This also means we need a bit
better set of tests.

The diff between old rev-list.c and new split files would not
have caught the static variable gotcha.

I am clueless about the "limited = (list && list->next)" part,
but there is only one commit involved hence the test is false
with my testcase "git-rev-list --objects v1.0.0^0..v1.0.0"; I
think the old code said dotdot is a limited case.

---
diff --git a/rev-list.c b/rev-list.c
index d1c52a6..630626e 100644
--- a/rev-list.c
+++ b/rev-list.c
@@ -214,8 +214,6 @@ static struct object_list **process_tree
 	return p;
 }
 
-static struct object_list *pending_objects = NULL;
-
 static void show_commit_list(struct commit_list *list)
 {
 	struct object_list *objects = NULL, **p = &objects, *pending;
@@ -226,7 +224,7 @@ static void show_commit_list(struct comm
 		if (process_commit(commit) == STOP)
 			break;
 	}
-	for (pending = pending_objects; pending; pending = pending->next) {
+	for (pending = revs.pending_objects; pending; pending = pending->next) {
 		struct object *obj = pending->item;
 		const char *name = pending->name;
 		if (obj->flags & (UNINTERESTING | SEEN))
@@ -675,7 +673,7 @@ int main(int argc, const char **argv)
 	}
 
 	list = revs.commits;
-	if (list && list->next)
+	if (list)
 		limited = 1;
 
 	if (revs.topo_order)
@@ -689,7 +687,7 @@ int main(int argc, const char **argv)
 		limited = 1;
 		diff_tree_setup_paths(revs.paths);
 	}
-	if (revs.max_age || revs.min_age)
+	if (revs.max_age != -1 || revs.min_age != -1)
 		limited = 1;
 
 	save_commit_buffer = verbose_header;

-
: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]