提交 76c6747b 编写于 作者: J Junio C Hamano

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
......@@ -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.
先完成此消息的编辑!
想要评论请 注册