threads / patch / 3625

patch, 6 partshttp-push: fix revision walk

Subject: [PATCH 1/6] http-push: fix revision walk

## tl;dr

One message between Mar 11, 2006 and Mar 11, 2006. Diffs are folded; open one to read it.

replies: 0people: 1as markdown or json

Nick Hengeveld· Mar 11, 2006, 04:17 UTC · lore

The revision walk was not including tags because setup_revisions zeroes out the revs flags. Pass --objects so it picks up all the necessary bits.

---
 http-push.c |   13 +++++--------
 1 files changed, 5 insertions(+), 8 deletions(-)
4bff87736bfc51313e7e23ebd9b99bc476c00616
Show changes to http-push.c +5 −8
diff --git a/http-push.c b/http-push.c
index 226d719..4c1b0c3 100644
--- a/http-push.c
+++ b/http-push.c
@@ -1752,23 +1752,20 @@ int main(int argc, char **argv)
 		}
 
 		/* Set up revision info for this refspec */
-		const char *commit_argv[3];
-		int commit_argc = 2;
+		const char *commit_argv[4];
+		int commit_argc = 3;
 		char *new_sha1_hex = strdup(sha1_to_hex(ref->new_sha1));
 		char *old_sha1_hex = NULL;
-		commit_argv[1] = new_sha1_hex;
+		commit_argv[1] = "--objects";
+		commit_argv[2] = new_sha1_hex;
 		if (!push_all && !is_zero_sha1(ref->old_sha1)) {
 			old_sha1_hex = xmalloc(42);
 			sprintf(old_sha1_hex, "^%s",
 				sha1_to_hex(ref->old_sha1));
-			commit_argv[2] = old_sha1_hex;
+			commit_argv[3] = old_sha1_hex;
 			commit_argc++;
 		}
-		revs.commits = NULL;
 		setup_revisions(commit_argc, commit_argv, &revs, NULL);
-		revs.tag_objects = 1;
-		revs.tree_objects = 1;
-		revs.blob_objects = 1;
 		free(new_sha1_hex);
 		if (old_sha1_hex) {
 			free(old_sha1_hex);
-- 
1.2.4.g8e81-dirty

← back to recent threads