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

[PATCH v2] add tests for 'git rebase --keep-empty'

From
Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
Date
Aug 9, 2012, 15:39 UTC
Message-ID
<1344526791-13539-1-git-send-email-martin.von.zweigbergk@gmail.com>
In-Reply-To
<1344444498-29328-1-git-send-email-martin.von.zweigbergk@gmail.com>

Add test cases for 'git rebase --keep-empty' with and without an "empty" commit already in upstream. The empty commit that is about to be rebased should be kept in both cases.

Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
---

Added another test for when the upstream already has an empty commit. The test case protects the current behavior; I just assume the current behavior is what we want.

While writing the test case, I also noticed that an interrupted 'git rebase --keep-empty' can not be continued 'git rebase --continue', but instead needs 'git cherry-pick --continue'. I guess this shouldn't really be surprising given that it's implemented in terms of cherry-pick. This should be fixed once all the different kinds of rebase use the same way of finding the commits to rebase, so I wouldn't worry about fixing this specific problem right now.

 t/t3401-rebase-partial.sh | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/t/t3401-rebase-partial.sh b/t/t3401-rebase-partial.sh
index 7f8693b..58f4823 100755
--- a/t/t3401-rebase-partial.sh
+++ b/t/t3401-rebase-partial.sh
@@ -47,7 +47,23 @@ test_expect_success 'rebase ignores empty commit' '
 	git commit --allow-empty -m empty &&
 	test_commit D &&
 	git rebase C &&
-	test $(git log --format=%s C..) = "D"
+	test "$(git log --format=%s C..)" = "D"
+'
+
+test_expect_success 'rebase --keep-empty' '
+	git reset --hard D &&
+	git rebase --keep-empty C &&
+	test "$(git log --format=%s C..)" = "D
+empty"
+'
+
+test_expect_success 'rebase --keep-empty keeps empty even if already in upstream' '
+	git reset --hard A &&
+	git commit --allow-empty -m also-empty &&
+	git rebase --keep-empty D &&
+	test "$(git log --format=%s A..)" = "also-empty
+D
+empty"
 '
 
 test_done
-- 
1.7.11.1.104.ge7b44f1
Previous: Neil HormanNext: Junio C Hamano
Message 3 of 8 in “add test for 'git rebase --keep-empty'”
  1. add test for 'git rebase --keep-empty'Martin von Zweigbergk, Aug 8, 2012
  2. Neil HormanAug 8, 2012
  3. add tests for 'git rebase --keep-empty'Martin von Zweigbergk, Aug 9, 2012
  4. Junio C HamanoAug 9, 2012
  5. Neil HormanAug 10, 2012
  6. Joachim SchmitzAug 10, 2012
  7. Porting to a new platformJunio C Hamano, Aug 10, 2012
  8. Joachim SchmitzAug 10, 2012

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.