diff options
Diffstat (limited to 'merge.c')
-rw-r--r-- | merge.c | 11 |
1 files changed, 7 insertions, 4 deletions
@@ -10,7 +10,7 @@ static const char *merge_argument(struct commit *commit) { if (commit) - return sha1_to_hex(commit->object.sha1); + return oid_to_hex(&commit->object.oid); else return EMPTY_TREE_SHA1_HEX; } @@ -57,7 +57,8 @@ int checkout_fast_forward(const unsigned char *head, refresh_cache(REFRESH_QUIET); - hold_locked_index(lock_file, 1); + if (hold_locked_index(lock_file, LOCK_REPORT_ON_ERROR) < 0) + return -1; memset(&trees, 0, sizeof(trees)); memset(&opts, 0, sizeof(opts)); @@ -90,7 +91,9 @@ int checkout_fast_forward(const unsigned char *head, } if (unpack_trees(nr_trees, t, &opts)) return -1; - if (write_locked_index(&the_index, lock_file, COMMIT_LOCK)) - die(_("unable to write new index file")); + if (write_locked_index(&the_index, lock_file, COMMIT_LOCK)) { + rollback_lock_file(lock_file); + return error(_("unable to write new index file")); + } return 0; } |