summaryrefslogtreecommitdiff
path: root/http-push.c
diff options
context:
space:
mode:
authorNick Hengeveld <nickh@reactrix.com>2006-03-11 04:17:55 (GMT)
committerJunio C Hamano <junkio@cox.net>2006-03-11 07:01:45 (GMT)
commit5241bfe6d1593ad775dd79a5f598f66f479968b5 (patch)
treefe1f32f4460e0297575ac1568272d665ff764d63 /http-push.c
parentf2561fda364ad984ef1441a80c90b0ee04f1a7c4 (diff)
downloadgit-5241bfe6d1593ad775dd79a5f598f66f479968b5.zip
git-5241bfe6d1593ad775dd79a5f598f66f479968b5.tar.gz
git-5241bfe6d1593ad775dd79a5f598f66f479968b5.tar.bz2
http-push: fix revision walk
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. Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'http-push.c')
-rw-r--r--http-push.c13
1 files changed, 5 insertions, 8 deletions
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);