Browse Source

Merge branch 'sb/test-cherry-pick-submodule-getting-in-a-way'

The three-way merge performed by "git cherry-pick" was confused
when a new submodule was added in the meantime, which has been
fixed (or "papered over").

* sb/test-cherry-pick-submodule-getting-in-a-way:
  merge-recursive: handle addition of submodule on our side of history
  t/3512: demonstrate unrelated submodule/file conflict as cherry-pick failure
maint
Junio C Hamano 7 years ago
parent
commit
f70a50fc48
  1. 5
      merge-recursive.c
  2. 36
      t/t3512-cherry-pick-submodule.sh

5
merge-recursive.c

@ -1901,8 +1901,9 @@ static int process_entry(struct merge_options *o, @@ -1901,8 +1901,9 @@ static int process_entry(struct merge_options *o,
oid = b_oid;
conf = _("directory/file");
}
if (dir_in_way(path, !o->call_depth,
S_ISGITLINK(a_mode))) {
if (dir_in_way(path,
!o->call_depth && !S_ISGITLINK(a_mode),
0)) {
char *new_path = unique_path(o, path, add_branch);
clean_merge = 0;
output(o, 1, _("CONFLICT (%s): There is a directory with name %s in %s. "

36
t/t3512-cherry-pick-submodule.sh

@ -10,4 +10,40 @@ KNOWN_FAILURE_NOFF_MERGE_DOESNT_CREATE_EMPTY_SUBMODULE_DIR=1 @@ -10,4 +10,40 @@ KNOWN_FAILURE_NOFF_MERGE_DOESNT_CREATE_EMPTY_SUBMODULE_DIR=1
KNOWN_FAILURE_NOFF_MERGE_ATTEMPTS_TO_MERGE_REMOVED_SUBMODULE_FILES=1
test_submodule_switch "git cherry-pick"

test_expect_success 'unrelated submodule/file conflict is ignored' '
test_create_repo sub &&

touch sub/file &&
git -C sub add file &&
git -C sub commit -m "add a file in a submodule" &&

test_create_repo a_repo &&
(
cd a_repo &&
>a_file &&
git add a_file &&
git commit -m "add a file" &&

git branch test &&
git checkout test &&

mkdir sub &&
>sub/content &&
git add sub/content &&
git commit -m "add a regular folder with name sub" &&

echo "123" >a_file &&
git add a_file &&
git commit -m "modify a file" &&

git checkout master &&

git submodule add ../sub sub &&
git submodule update sub &&
git commit -m "add a submodule info folder with name sub" &&

git cherry-pick test
)
'

test_done

Loading…
Cancel
Save