sequencer: lib'ify checkout_fast_forward()

Instead of dying there, let the caller high up in the callchain notice the error and handle it (by dying, still). The only callers of checkout_fast_forward(), cmd_merge(), pull_into_void(), cmd_pull() and sequencer's fast_forward_to(), already check the return value and handle it appropriately. With this step, we make it notice an error return from this function. So this is a safe conversion to make checkout_fast_forward() callable from new callers that want it not to die, without changing the external behaviour of anything existing. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Johannes Schindelin committed Sep 9, 2016 at 16:38 UTC 55f5704da69d3e6836620f01bee0093ad5e331e8
1 file changed +6 -3
merge.c
+6 -3
@@ -57,7 +57,8 @@ int checkout_fast_forward(const unsigned char *head,
57
58 refresh_cache(REFRESH_QUIET);
59
60 - hold_locked_index(lock_file, 1);
60 + if (hold_locked_index(lock_file, 0) < 0)
61 + return -1;
62
63 memset(&trees, 0, sizeof(trees));
64 memset(&opts, 0, sizeof(opts));
@@ -90,7 +91,9 @@ int checkout_fast_forward(const unsigned char *head,
91 }
92 if (unpack_trees(nr_trees, t, &opts))
93 return -1;
93 - if (write_locked_index(&the_index, lock_file, COMMIT_LOCK))
94 - die(_("unable to write new index file"));
94 + if (write_locked_index(&the_index, lock_file, COMMIT_LOCK)) {
95 + rollback_lock_file(lock_file);
96 + return error(_("unable to write new index file"));
97 + }
98 return 0;
99 }