* Bug: cherry-pick & submodule
@ 2017-11-10 16:41 Ефимов Василий
2017-11-11 0:04 ` [PATCH] t/3512: demonstrate unrelated submodule/file conflict as cherry-pick failure Stefan Beller
0 siblings, 1 reply; 2+ messages in thread
From: Ефимов Василий @ 2017-11-10 16:41 UTC (permalink / raw)
To: git
I faced an unexpected behaviour during cherry-picking
a commit to a branch with a submodule.
Git graph:
A -- B [master]
\
`- C -- D [test]
Both branches have a file with name `a_file`.
It has been added by commit A.
Commits B and C add a folder with name `a_submodule` to the respective
branches.
Commit C does it regularly by adding a file with name `a_submodule/content`.
Commit B adds a submodule with name `a_submodule`.
Commit D only modifies `a_file`.
Note that `a_file` and `a_submodule` are not related.
[repo]
|- a_file
`- a_submodule
When I trying to cherry pick commit D on commit B, I got
a conflict with `a_submodule`. Changes of `a_file` are
successfully cherry-picked.
I expected, that there would be no conflicts.
A bash script reproducing the bug is listed below.
Vasily.
====
rm -rf a_submodule a_repo
mkdir a_submodule
cd a_submodule
git init
touch a_file_in_a_submodule
git add a_file_in_a_submodule
git commit -m "add a file in a submodule"
cd ..
mkdir a_repo
cd a_repo
git init
touch a_file
git add a_file
git commit -m "add a file"
git branch test
git checkout test
mkdir a_submodule
touch a_submodule/content
git add a_submodule/content
git commit -m "add a regular folder with name a_submodule"
echo "123" > a_file
git add a_file
git commit -m "modify a file"
git checkout master
git submodule add ../a_submodule a_submodule
git submodule update a_submodule
git commit -m "add a submodule info folder with name a_submodule"
# Trying to cherry-pick modification of a file from test branch.
git cherry-pick test
# some debug
git status
====
^ permalink raw reply [flat|nested] 2+ messages in thread
* [PATCH] t/3512: demonstrate unrelated submodule/file conflict as cherry-pick failure
2017-11-10 16:41 Bug: cherry-pick & submodule Ефимов Василий
@ 2017-11-11 0:04 ` Stefan Beller
0 siblings, 0 replies; 2+ messages in thread
From: Stefan Beller @ 2017-11-11 0:04 UTC (permalink / raw)
To: real; +Cc: git, Stefan Beller
Signed-off-by: Stefan Beller <sbeller@google.com>
---
I rewrote your script to integrate with our test suite, potentially acting as
a regression test once we solve the Directory/File conflict issue.
Thanks,
Stefan
t/t3512-cherry-pick-submodule.sh | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
diff --git a/t/t3512-cherry-pick-submodule.sh b/t/t3512-cherry-pick-submodule.sh
index 6863b7bb6f..17a6773247 100755
--- a/t/t3512-cherry-pick-submodule.sh
+++ b/t/t3512-cherry-pick-submodule.sh
@@ -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_failure '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 &&
+ touch a_file &&
+ git add a_file &&
+ git commit -m "add a file" &&
+
+ git branch test &&
+ git checkout test &&
+
+ mkdir sub &&
+ touch 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
--
2.15.0.128.gcadd42da22
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-11-11 0:04 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-11-10 16:41 Bug: cherry-pick & submodule Ефимов Василий
2017-11-11 0:04 ` [PATCH] t/3512: demonstrate unrelated submodule/file conflict as cherry-pick failure Stefan Beller
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.