summaryrefslogtreecommitdiff
path: root/send-pack.c
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <junkio@cox.net>2005-12-14 17:30:03 -0800
committerLibravatar Junio C Hamano <junkio@cox.net>2005-12-14 17:30:03 -0800
commit1ed91937e5cd59fdbdfa5f15f6fac132d2b21ce0 (patch)
treef65b929c006c31043213152752ea0c80bf08b9e5 /send-pack.c
parentGIT 0.99.9m aka 1.0rc5 (diff)
parentgit rebase loses author name/email if given bad email address (diff)
downloadtgif-1ed91937e5cd59fdbdfa5f15f6fac132d2b21ce0.tar.xz
GIT 0.99.9n aka 1.0rc6
Oh, I hate to do this but I ended up merging big usage string cleanups from Fredrik, git-am enhancements that made a lot of sense for non mbox users from HPA, and rebase changes (done independently by me and Lukas) among other things, so git is still in perpetual state of 1.0rc. 1.0 will probably be next Wednesday, but who knows. Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'send-pack.c')
-rw-r--r--send-pack.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/send-pack.c b/send-pack.c
index f61c15c820..6ce0d9f788 100644
--- a/send-pack.c
+++ b/send-pack.c
@@ -179,6 +179,7 @@ static int send_pack(int in, int out, int nr_refspec, char **refspec)
{
struct ref *ref;
int new_refs;
+ int ret = 0;
/* No funny business with the matcher */
remote_tail = get_remote_heads(in, &remote_refs, 0, NULL, 1);
@@ -232,6 +233,7 @@ static int send_pack(int in, int out, int nr_refspec, char **refspec)
error("remote '%s' object %s does not "
"exist on local",
ref->name, sha1_to_hex(ref->old_sha1));
+ ret = -2;
continue;
}
@@ -245,12 +247,14 @@ static int send_pack(int in, int out, int nr_refspec, char **refspec)
error("remote ref '%s' is not a strict "
"subset of local ref '%s'.", ref->name,
ref->peer_ref->name);
+ ret = -2;
continue;
}
}
memcpy(ref->new_sha1, ref->peer_ref->new_sha1, 20);
if (is_zero_sha1(ref->new_sha1)) {
error("cannot happen anymore");
+ ret = -3;
continue;
}
new_refs++;
@@ -267,7 +271,7 @@ static int send_pack(int in, int out, int nr_refspec, char **refspec)
if (new_refs)
pack_objects(out, remote_refs);
close(out);
- return 0;
+ return ret;
}