git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 2/5] New test: no merges without preserve merges

From
JSJörg Sommer <joerg@alea.gnuu.de>
Date
Mar 22, 2008, 14:08 UTC
Message-ID
<1206194907-3340-2-git-send-email-joerg@alea.gnuu.de>
In-Reply-To
<1206194907-3340-1-git-send-email-joerg@alea.gnuu.de>

This test checks that no merges are included, if --preserve-merges is not given.

To see a difference between with and without merges add a second commit to the branch to-be-preserved. Otherwise you exchange one merge with one commit, which isn't cognizable with EXPECT_COUNT.

The for loop in the test looks somewhat strange, but I didn't saw a different way (than || exit 1) to make the test fail if an inner test fails. Recall: The exit code of a for loop is the exit code of the last command in the last pass, i.e. “for a in 1 2; do test $a != 1; do” returns success.

Signed-off-by: Jörg Sommer <joerg@alea.gnuu.de>
---
 t/t3404-rebase-interactive.sh |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)

This patch must be applied after the first patch that fixes rebase, because it triggers a bug.

diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh
index 9cf873f..8de1f21 100755
--- a/t/t3404-rebase-interactive.sh
+++ b/t/t3404-rebase-interactive.sh
@@ -195,6 +195,9 @@ test_expect_success 'preserve merges with -p' '
 	git add unrelated-file &&
 	test_tick &&
 	git commit -m "unrelated" &&
+	echo 2 > unrelated-file &&
+	test_tick &&
+	git commit -m "second unrelated commit" unrelated-file &&
 	git checkout -b to-be-rebased master &&
 	echo B > file1 &&
 	test_tick &&
@@ -212,6 +215,18 @@ test_expect_success 'preserve merges with -p' '
 	test $(git show HEAD~2:file1) = B
 '
 
+test_expect_success 'no merges without preserve merges' '
+	head=$(git rev-parse HEAD) &&
+	test_tick &&
+	EXPECT_COUNT=4 git rebase -i branch1 &&
+	test $(git rev-parse HEAD) != $head &&
+        for i in 0 1 2 3
+	do
+		test $? -eq 0 &&
+		test "$(git rev-list --parents -1 HEAD~$i | tr -dc " ")" = " "
+	done
+'
+
 test_expect_success '--continue tries to commit' '
 	test_tick &&
 	! git rebase -i --onto new-branch1 HEAD^ &&
-- 
1.5.4.4
Previous: Jörg SommerNext: Jörg Sommer
Message 15 of 19 in “rebase with preserve merges should not show merged commits”
  1. rebase with preserve merges should not show merged commitsJörg Sommer, Mar 22, 2008
  2. Check for non‐foreign commits in rebase-interactive testJörg Sommer, Mar 22, 2008
  3. Handle fast forward correctly in rebase with preserve mergesJörg Sommer, Mar 22, 2008
  4. New tests to check rebase with preserve mergesJörg Sommer, Mar 22, 2008
  5. Johannes SchindelinMar 22, 2008
  6. Jörg SommerMar 22, 2008
  7. Johannes SchindelinMar 22, 2008
  8. Björn SteinbrinkMar 22, 2008
  9. Jörg SommerMar 22, 2008
  10. Björn SteinbrinkMar 22, 2008
  11. Jörg SommerMar 22, 2008
  12. Björn SteinbrinkMar 22, 2008
  13. Jörg SommerMar 22, 2008
  14. 1/5 rebase with preserve merges should not show merged commitsJörg Sommer, Mar 22, 2008
  15. 2/5 New test: no merges without preserve mergesJörg Sommer, Mar 22, 2008
  16. 3/5 Check for non‐foreign commits in rebase-interactive testJörg Sommer, Mar 22, 2008
  17. 4/5 Handle fast forward correctly in rebase with preserve mergesJörg Sommer, Mar 22, 2008
  18. 5/5 New tests to check rebase with preserve mergesJörg Sommer, Mar 22, 2008
  19. Johannes SchindelinMar 22, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.