summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2014-06-03 12:06:42 -0700
committerJunio C Hamano <gitster@pobox.com>2014-06-03 12:06:42 -0700
commit2e4b5dee97cb1524a88f0ee90450b139bfaff07b (patch)
tree92e5ac7b9d415f1dc22e78c25fa7b01b85a2e02a
parent53f52cd92acb033df4a50d1557bae9c55c2d4d67 (diff)
parent55a5c8d72b03ad3727b89900069a1d58664fe5e4 (diff)
downloadgit-2e4b5dee97cb1524a88f0ee90450b139bfaff07b.tar.gz
Merge branch 'rs/ref-update-check-errors-early'
* rs/ref-update-check-errors-early: commit.c: check for lock error and return early sequencer.c: check for lock failure and bail early in fast_forward_to
-rw-r--r--builtin/commit.c8
-rw-r--r--sequencer.c4
2 files changed, 8 insertions, 4 deletions
diff --git a/builtin/commit.c b/builtin/commit.c
index 9cfef6c6cc..f0b790640d 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -1672,6 +1672,10 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
? NULL
: current_head->object.sha1,
0, NULL);
+ if (!ref_lock) {
+ rollback_index_files();
+ die(_("cannot lock HEAD ref"));
+ }
nl = strchr(sb.buf, '\n');
if (nl)
@@ -1681,10 +1685,6 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
strbuf_insert(&sb, 0, reflog_msg, strlen(reflog_msg));
strbuf_insert(&sb, strlen(reflog_msg), ": ", 2);
- if (!ref_lock) {
- rollback_index_files();
- die(_("cannot lock HEAD ref"));
- }
if (write_ref_sha1(ref_lock, sha1, sb.buf) < 0) {
rollback_index_files();
die(_("cannot update HEAD ref"));
diff --git a/sequencer.c b/sequencer.c
index bde5f047b0..0a80c58d11 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -281,8 +281,12 @@ static int fast_forward_to(const unsigned char *to, const unsigned char *from,
exit(1); /* the callee should have complained already */
ref_lock = lock_any_ref_for_update("HEAD", unborn ? null_sha1 : from,
0, NULL);
+ if (!ref_lock)
+ return error(_("Failed to lock HEAD during fast_forward_to"));
+
strbuf_addf(&sb, "%s: fast-forward", action_name(opts));
ret = write_ref_sha1(ref_lock, to, sb.buf);
+
strbuf_release(&sb);
return ret;
}