diff options
author | Shawn O. Pearce <spearce@spearce.org> | 2007-03-07 20:04:24 +0300 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2007-03-07 21:01:44 +0300 |
commit | ef203f08564c1c6d267fedf8e0357c56d477892f (patch) | |
tree | cbc2b6f403cab3873b065eff13fb1214996316a1 | |
parent | 58db64f73c3dedb41467f915b45d305d52d04d2c (diff) |
Catch write_ref_sha1 failure in receive-pack
This failure to catch the failure of write_ref_sha1 was noticed
by Bill Lear. The ref will not update if the log file could not
be appended to (due to file permissions problems). Such a failure
should be flagged as a failure to update the ref, so that the client
knows the push did not succeed.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r-- | receive-pack.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/receive-pack.c b/receive-pack.c index 7311c822dd..ea6872e46f 100644 --- a/receive-pack.c +++ b/receive-pack.c @@ -158,7 +158,10 @@ static int update(struct command *cmd) cmd->error_string = "failed to lock"; return error("failed to lock %s", name); } - write_ref_sha1(lock, new_sha1, "push"); + if (write_ref_sha1(lock, new_sha1, "push")) { + cmd->error_string = "failed to write"; + return -1; /* error() already called */ + } fprintf(stderr, "%s: %s -> %s\n", name, old_hex, new_hex); } return 0; |