From: Junio C Hamano Date: Thu, 6 Jun 2019 21:03:36 +0000 (-0700) Subject: Merge branch 'en/merge-directory-renames-fix' X-Git-Tag: v2.22.0~2 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/20fbf7dd421d05399dfe916edf8eed1932b15e22?ds=inline;hp=-c Merge branch 'en/merge-directory-renames-fix' Recent code restructuring of merge-recursive engine introduced a regression dealing with rename/add conflict. * en/merge-directory-renames-fix: merge-recursive: restore accidentally dropped setting of path --- 20fbf7dd421d05399dfe916edf8eed1932b15e22 diff --combined merge-recursive.c index a7bcfcbeb4,917b9229eb..d2e380b7ed --- a/merge-recursive.c +++ b/merge-recursive.c @@@ -163,11 -163,6 +163,11 @@@ static struct tree *shift_tree_object(s return lookup_tree(repo, &shifted); } +static inline void set_commit_tree(struct commit *c, struct tree *t) +{ + c->maybe_tree = t; +} + static struct commit *make_virtual_commit(struct repository *repo, struct tree *tree, const char *comment) @@@ -175,7 -170,7 +175,7 @@@ struct commit *commit = alloc_commit_node(repo); set_merge_remote_desc(commit, comment, (struct object *)commit); - commit->maybe_tree = tree; + set_commit_tree(commit, tree); commit->object.parsed = 1; return commit; } @@@ -1081,7 -1076,7 +1081,7 @@@ static int find_first_merges(struct rep struct commit *commit; int contains_another; - char merged_revision[42]; + char merged_revision[GIT_MAX_HEXSZ + 2]; const char *rev_args[] = { "rev-list", "--merges", "--ancestry-path", "--all", merged_revision, NULL }; struct rev_info revs; @@@ -1660,6 -1655,7 +1660,7 @@@ static int handle_rename_add(struct mer c->path, add_branch); prev_path_desc = xstrfmt("version of %s from %s", path, a->path); + ci->ren1->src_entry->stages[other_stage].path = a->path; if (merge_mode_and_contents(opt, a, c, &ci->ren1->src_entry->stages[other_stage], prev_path_desc,