From: Elijah Newren <newren@gmail.com> To: git@vger.kernel.org Cc: gitster@pobox.com, corrmage@gmail.com, avarab@gmail.com, Johannes.Schindelin@gmx.de, sbeller@google.com, Elijah Newren <newren@gmail.com> Subject: [PATCH 1/3] t3401: add another directory rename testcase for rebase and am Date: Wed, 29 Aug 2018 00:06:11 -0700 Message-ID: <20180829070613.11793-2-newren@gmail.com> (raw) In-Reply-To: <20180829070613.11793-1-newren@gmail.com> Similar to commit 16346883ab ("t3401: add directory rename testcases for rebase and am", 2018-06-27), add another testcase for directory rename detection. This new testcase differs in that it showcases a situation where no directory rename was performed, but which some backends incorrectly detect. As with the other testcase, run this in conjunction with each of the types of rebases: git-rebase--interactive git-rebase--am git-rebase--merge and also use the same testcase for git am --3way Reported-by: Nikolay Kasyanov <corrmage@gmail.com> Signed-off-by: Elijah Newren <newren@gmail.com> --- t/t3401-rebase-and-am-rename.sh | 110 +++++++++++++++++++++++++++++++- 1 file changed, 109 insertions(+), 1 deletion(-) diff --git a/t/t3401-rebase-and-am-rename.sh b/t/t3401-rebase-and-am-rename.sh index 8f832957fc..a87df9e675 100755 --- a/t/t3401-rebase-and-am-rename.sh +++ b/t/t3401-rebase-and-am-rename.sh @@ -5,7 +5,7 @@ test_description='git rebase + directory rename tests' . ./test-lib.sh . "$TEST_DIRECTORY"/lib-rebase.sh -test_expect_success 'setup testcase' ' +test_expect_success 'setup testcase where directory rename should be detected' ' test_create_repo dir-rename && ( cd dir-rename && @@ -102,4 +102,112 @@ test_expect_failure 'am: directory rename detected' ' ) ' +test_expect_success 'setup testcase where directory rename should NOT be detected' ' + test_create_repo no-dir-rename && + ( + cd no-dir-rename && + + mkdir x && + test_seq 1 10 >x/a && + test_seq 11 20 >x/b && + test_seq 21 30 >x/c && + echo original >project_info && + git add x project_info && + git commit -m "Initial" && + + git branch O && + git branch A && + git branch B && + + git checkout A && + echo v2 >project_info && + git add project_info && + git commit -m "Modify project_info" && + + git checkout B && + mkdir y && + git mv x/c y/c && + echo v1 >project_info && + git add project_info && + git commit -m "Rename x/c to y/c, modify project_info" + ) +' + +test_expect_success 'rebase --interactive: NO directory rename' ' + test_when_finished "git -C no-dir-rename rebase --abort" && + ( + cd no-dir-rename && + + git checkout B^0 && + + set_fake_editor && + FAKE_LINES="1" test_must_fail git rebase --interactive A && + + git ls-files -s >out && + test_line_count = 6 out && + + test_path_is_file x/a && + test_path_is_file x/b && + test_path_is_missing x/c + ) +' + +test_expect_failure 'rebase (am): NO directory rename' ' + test_when_finished "git -C no-dir-rename rebase --abort" && + ( + cd no-dir-rename && + + git checkout B^0 && + + set_fake_editor && + FAKE_LINES="1" test_must_fail git rebase A && + + git ls-files -s >out && + test_line_count = 6 out && + + test_path_is_file x/a && + test_path_is_file x/b && + test_path_is_missing x/c + ) +' + +test_expect_success 'rebase --merge: NO directory rename' ' + test_when_finished "git -C no-dir-rename rebase --abort" && + ( + cd no-dir-rename && + + git checkout B^0 && + + set_fake_editor && + FAKE_LINES="1" test_must_fail git rebase --merge A && + + git ls-files -s >out && + test_line_count = 6 out && + + test_path_is_file x/a && + test_path_is_file x/b && + test_path_is_missing x/c + ) +' + +test_expect_failure 'am: NO directory rename' ' + test_when_finished "git -C no-dir-rename am --abort" && + ( + cd no-dir-rename && + + git checkout A^0 && + + git format-patch -1 B && + + test_must_fail git am --3way 0001*.patch && + + git ls-files -s >out && + test_line_count = 6 out && + + test_path_is_file x/a && + test_path_is_file x/b && + test_path_is_missing x/c + ) +' + test_done -- 2.18.0.12.g97a29da30a
next prev parent reply other threads:[~2018-08-29 7:06 UTC|newest] Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-08-28 12:27 A rebase regression in Git 2.18.0 Nikolay Kasyanov 2018-08-28 13:17 ` Ævar Arnfjörð Bjarmason 2018-08-28 13:33 ` Johannes Schindelin 2018-08-28 13:46 ` Nikolay Kasyanov 2018-08-28 15:35 ` Elijah Newren 2018-08-28 16:58 ` Junio C Hamano 2018-08-29 7:06 ` [PATCH 0/3] Turn off directory rename detection in am -3 Elijah Newren 2018-08-29 7:06 ` Elijah Newren [this message] 2018-08-29 22:12 ` [PATCH 1/3] t3401: add another directory rename testcase for rebase and am Junio C Hamano 2018-08-29 23:47 ` Elijah Newren 2018-08-30 16:01 ` Junio C Hamano 2018-08-30 16:26 ` Elijah Newren 2018-08-29 7:06 ` [PATCH 2/3] merge-recursive: add ability to turn off directory rename detection Elijah Newren 2018-08-29 12:54 ` Johannes Schindelin 2018-08-29 23:00 ` Elijah Newren 2018-08-29 7:06 ` [PATCH 3/3] am: avoid directory rename detection when calling recursive merge machinery Elijah Newren 2018-08-29 12:51 ` Johannes Schindelin 2018-08-30 16:41 ` A rebase regression in Git 2.18.0 Elijah Newren 2018-08-31 10:11 ` Johannes Schindelin 2018-08-31 19:37 ` Elijah Newren
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style List information: http://vger.kernel.org/majordomo-info.html * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20180829070613.11793-2-newren@gmail.com \ --to=newren@gmail.com \ --cc=Johannes.Schindelin@gmx.de \ --cc=avarab@gmail.com \ --cc=corrmage@gmail.com \ --cc=git@vger.kernel.org \ --cc=gitster@pobox.com \ --cc=sbeller@google.com \ --subject='Re: [PATCH 1/3] t3401: add another directory rename testcase for rebase and am' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
git@vger.kernel.org list mirror (unofficial, one of many) This inbox may be cloned and mirrored by anyone: git clone --mirror https://public-inbox.org/git git clone --mirror http://ou63pmih66umazou.onion/git git clone --mirror http://czquwvybam4bgbro.onion/git git clone --mirror http://hjrcffqmbrq6wope.onion/git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V1 git git/ https://public-inbox.org/git \ git@vger.kernel.org public-inbox-index git Example config snippet for mirrors. Newsgroups are available over NNTP: nntp://news.public-inbox.org/inbox.comp.version-control.git nntp://ou63pmih66umazou.onion/inbox.comp.version-control.git nntp://czquwvybam4bgbro.onion/inbox.comp.version-control.git nntp://hjrcffqmbrq6wope.onion/inbox.comp.version-control.git nntp://news.gmane.io/gmane.comp.version-control.git note: .onion URLs require Tor: https://www.torproject.org/ code repositories for project(s) associated with this inbox: https://80x24.org/mirrors/git.git AGPL code for this site: git clone https://public-inbox.org/public-inbox.git