diff options
author | Junio C Hamano <gitster@pobox.com> | 2015-02-11 13:41:44 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-02-11 13:41:45 -0800 |
commit | 76c6747b7e0a67416c1d88bf50440436397abd3f (patch) | |
tree | 77a38d7b1e5762b57baaaf687a4eb1a56e4b7cbb /rerere.c | |
parent | 092c4be7f5d691809913eb83a2360f035c67ab06 (diff) | |
parent | 89ea90351dd32fbe384d0cf844640a9c55606f3b (diff) | |
download | git-76c6747b7e0a67416c1d88bf50440436397abd3f.tar.gz |
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
Diffstat (limited to 'rerere.c')
-rw-r--r-- | rerere.c | 16 |
1 files changed, 6 insertions, 10 deletions
@@ -477,27 +477,23 @@ out: 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 fd = hold_locked_index(&index_lock, 0); - int status = 0; - if (fd < 0) - return -1; + hold_locked_index(&index_lock, 1); for (i = 0; i < update->nr; i++) { struct string_list_item *item = &update->items[i]; - if (add_file_to_cache(item->string, ADD_CACHE_IGNORE_ERRORS)) - status = -1; + if (add_file_to_cache(item->string, 0)) + exit(128); } - if (!status && active_cache_changed) { + if (active_cache_changed) { if (write_locked_index(&the_index, &index_lock, COMMIT_LOCK)) die("Unable to write new index file"); - } else if (fd >= 0) + } else rollback_lock_file(&index_lock); - return status; } static int do_plain_rerere(struct string_list *rr, int fd) |