Merge branch 'jn/rerere-fail-on-auto-update-failure'
"git rerere" (invoked internally from many mergy operations) did not correctly signal errors when told to update the working tree files and failed to do so for whatever reason. * jn/rerere-fail-on-auto-update-failure: rerere: error out on autoupdate failure
This commit is contained in:
commit
76c6747b7e
16
rerere.c
16
rerere.c
@ -477,27 +477,23 @@ out:
|
|||||||
|
|
||||||
static struct lock_file index_lock;
|
static struct lock_file index_lock;
|
||||||
|
|
||||||
static int update_paths(struct string_list *update)
|
static void update_paths(struct string_list *update)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
int fd = hold_locked_index(&index_lock, 0);
|
|
||||||
int status = 0;
|
|
||||||
|
|
||||||
if (fd < 0)
|
hold_locked_index(&index_lock, 1);
|
||||||
return -1;
|
|
||||||
|
|
||||||
for (i = 0; i < update->nr; i++) {
|
for (i = 0; i < update->nr; i++) {
|
||||||
struct string_list_item *item = &update->items[i];
|
struct string_list_item *item = &update->items[i];
|
||||||
if (add_file_to_cache(item->string, ADD_CACHE_IGNORE_ERRORS))
|
if (add_file_to_cache(item->string, 0))
|
||||||
status = -1;
|
exit(128);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!status && active_cache_changed) {
|
if (active_cache_changed) {
|
||||||
if (write_locked_index(&the_index, &index_lock, COMMIT_LOCK))
|
if (write_locked_index(&the_index, &index_lock, COMMIT_LOCK))
|
||||||
die("Unable to write new index file");
|
die("Unable to write new index file");
|
||||||
} else if (fd >= 0)
|
} else
|
||||||
rollback_lock_file(&index_lock);
|
rollback_lock_file(&index_lock);
|
||||||
return status;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int do_plain_rerere(struct string_list *rr, int fd)
|
static int do_plain_rerere(struct string_list *rr, int fd)
|
||||||
|
Loading…
Reference in New Issue
Block a user