[PATCH v2 1/2] t4255: test am submodule with diff.submodule
git am will break when using diff.submodule=log; add some test cases to illustrate this breakage as simply as possible. There are currently two ways this can fail: * With errors (unrecognized input), if only change * Silently (no submodule change), if other files change Test for both conditions and ensure without diff.submodule this works. Signed-off-by: Doug Kelly dougk@gmail.com --- t/t4255-am-submodule.sh | 84 + 1 file changed, 84 insertions(+) diff --git a/t/t4255-am-submodule.sh b/t/t4255-am-submodule.sh index 8bde7db..a2dc083 100755 --- a/t/t4255-am-submodule.sh +++ b/t/t4255-am-submodule.sh @@ -18,4 +18,88 @@ am_3way () { KNOWN_FAILURE_NOFF_MERGE_ATTEMPTS_TO_MERGE_REMOVED_SUBMODULE_FILES=1 test_submodule_switch am_3way +test_expect_success 'setup diff.submodule' ' + echo one one + git add one + test_tick + git commit -m initial + INITIAL=$(git rev-parse HEAD) + + git init submodule + ( + cd submodule + echo two two + git add two + test_tick + git commit -m initial submodule + git rev-parse HEAD ../initial-submodule + ) + git submodule add ./submodule + test_tick + git commit -m first + + ( + cd submodule + echo three three + git add three + test_tick + git commit -m first submodule + git rev-parse HEAD ../first-submodule + ) + git add submodule + test_tick + git commit -m second + SECOND=$(git rev-parse HEAD) + + ( + cd submodule + git mv two four + test_tick + git commit -m second submodule + git rev-parse HEAD ../second-submodule + ) + git add submodule + echo four four + git add four + test_tick + git commit -m third + THIRD=$(git rev-parse HEAD) + git submodule update --init +' + +run_test() { + START_COMMIT=$1 + EXPECT=$2 + (git am --abort || true) + git reset --hard $START_COMMIT + rm -f *.patch + git format-patch -1 + git reset --hard $START_COMMIT^ + git submodule update + git am *.patch + git submodule update + (cd submodule git rev-parse HEAD ../actual) + test_cmp $EXPECT actual +} + +test_expect_success 'diff.submodule unset' ' + (git config --unset diff.submodule || true) + run_test $SECOND first-submodule +' + +test_expect_success 'diff.submodule unset with extra file' ' + (git config --unset diff.submodule || true) + run_test $THIRD second-submodule +' + +test_expect_failure 'diff.submodule=log' ' + git config diff.submodule log + run_test $SECOND first-submodule +' + +test_expect_failure 'diff.submodule=log with extra file' ' + git config diff.submodule log + run_test $THIRD second-submodule +' + test_done -- 2.0.5 -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2 1/2] t4255: test am submodule with diff.submodule
On Sat, Dec 27, 2014 at 07:04:23PM -0600, Doug Kelly wrote: git am will break when using diff.submodule=log; add some test cases to illustrate this breakage as simply as possible. There are currently two ways this can fail: * With errors (unrecognized input), if only change * Silently (no submodule change), if other files change Test for both conditions and ensure without diff.submodule this works. Signed-off-by: Doug Kelly dougk@gmail.com --- Here below the --- line is a good place to explain what changed since the last version of the patch (or do so in the cover letter of the new patch series). It's also helpful to reviewers to provide a link to the previous round, like this[1]. [1]: http://thread.gmane.org/gmane.comp.version-control.git/261830 More below. t/t4255-am-submodule.sh | 84 + 1 file changed, 84 insertions(+) diff --git a/t/t4255-am-submodule.sh b/t/t4255-am-submodule.sh index 8bde7db..a2dc083 100755 --- a/t/t4255-am-submodule.sh +++ b/t/t4255-am-submodule.sh @@ -18,4 +18,88 @@ am_3way () { KNOWN_FAILURE_NOFF_MERGE_ATTEMPTS_TO_MERGE_REMOVED_SUBMODULE_FILES=1 test_submodule_switch am_3way +test_expect_success 'setup diff.submodule' ' + echo one one + git add one + test_tick + git commit -m initial Perhaps squash in the following to improve succinctness? -- 8 -- diff --git a/t/t4255-am-submodule.sh b/t/t4255-am-submodule.sh index b7ec0f1..b58e776 100755 --- a/t/t4255-am-submodule.sh +++ b/t/t4255-am-submodule.sh @@ -19,50 +19,37 @@ KNOWN_FAILURE_NOFF_MERGE_ATTEMPTS_TO_MERGE_REMOVED_SUBMODULE_FILES=1 test_submodule_switch am_3way test_expect_success 'setup diff.submodule' ' - echo one one - git add one - test_tick - git commit -m initial + test_commit one INITIAL=$(git rev-parse HEAD) git init submodule ( cd submodule - echo two two - git add two - test_tick - git commit -m initial submodule + test_commit two git rev-parse HEAD ../initial-submodule ) git submodule add ./submodule - test_tick git commit -m first ( cd submodule - echo three three - git add three - test_tick - git commit -m first submodule + test_commit three git rev-parse HEAD ../first-submodule ) git add submodule - test_tick git commit -m second SECOND=$(git rev-parse HEAD) ( cd submodule - git mv two four + git mv two.t four.t test_tick git commit -m second submodule git rev-parse HEAD ../second-submodule ) + test_commit four git add submodule - echo four four - git add four - test_tick - git commit -m third + git commit --amend --no-edit THIRD=$(git rev-parse HEAD) git submodule update --init ' -- 2.2.1.302.gdfcd89f -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html