提交 74419c29 编写于 作者: J Junio C Hamano

Merge branch 'jn/rerere-fail-on-auto-update-failure' into maint

"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
......@@ -477,27 +477,23 @@ static int merge(const char *name, const char *path)
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)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册