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

[PATCH v3 08/10] replace: add tests for --edit

From
Christian Couder <chriscool@tuxfamily.org>
Date
May 17, 2014, 12:16 UTC
Message-ID
<20140517121640.27582.46088.chriscool@tuxfamily.org>
In-Reply-To
<20140517120649.27582.58609.chriscool@tuxfamily.org>
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
---
 t/t6050-replace.sh | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)
diff --git a/t/t6050-replace.sh b/t/t6050-replace.sh
index 719a116..68b3cb2 100755
--- a/t/t6050-replace.sh
+++ b/t/t6050-replace.sh
@@ -318,6 +318,33 @@ test_expect_success 'test --format long' '
 	test_cmp expected actual
 '
 
+test_expect_success 'setup a fake editor' '
+	write_script fakeeditor <<-\EOF
+		sed -e "s/A U Thor/A fake Thor/" "$1" >"$1.new"
+		mv "$1.new" "$1"
+	EOF
+'
+
+test_expect_success '--edit with and without already replaced object' '
+	test_must_fail env GIT_EDITOR=./fakeeditor git replace --edit "$PARA3" &&
+	GIT_EDITOR=./fakeeditor git replace --force --edit "$PARA3" &&
+	git replace -l | grep "$PARA3" &&
+	git cat-file commit "$PARA3" | grep "A fake Thor" &&
+	git replace -d "$PARA3" &&
+	GIT_EDITOR=./fakeeditor git replace --edit "$PARA3" &&
+	git replace -l | grep "$PARA3" &&
+	git cat-file commit "$PARA3" | grep "A fake Thor"
+'
+
+test_expect_success '--edit and change nothing or command failed' '
+	git replace -d "$PARA3" &&
+	test_must_fail env GIT_EDITOR=true git replace --edit "$PARA3" &&
+	test_must_fail env GIT_EDITOR="./fakeeditor;false" git replace --edit "$PARA3" &&
+	GIT_EDITOR=./fakeeditor git replace --edit "$PARA3" &&
+	git replace -l | grep "$PARA3" &&
+	git cat-file commit "$PARA3" | grep "A fake Thor"
+'
+
 test_expect_success 'replace ref cleanup' '
 	test -n "$(git replace)" &&
 	git replace -d $(git replace) &&
-- 
1.9.rc0.17.g651113e
Previous: Christian CouderNext: Christian Couder
Message 9 of 12 in “replace: add option to edit a Git object”
  1. 00/10 replace: add option to edit a Git objectChristian Couder, May 17, 2014
  2. 01/10 replace: refactor command-mode determinationChristian Couder, May 17, 2014
  3. 02/10 replace: use OPT_CMDMODE to handle modesChristian Couder, May 17, 2014
  4. 03/10 replace: factor object resolution out of replace_objectChristian Couder, May 17, 2014
  5. 04/10 replace: add --edit optionChristian Couder, May 17, 2014
  6. 05/10 replace: make sure --edit results in a different objectChristian Couder, May 17, 2014
  7. 06/10 replace: refactor checking ref validityChristian Couder, May 17, 2014
  8. 07/10 replace: die early if replace ref already existsChristian Couder, May 17, 2014
  9. 08/10 replace: add tests for --editChristian Couder, May 17, 2014
  10. 09/10 replace: add --edit to usage stringChristian Couder, May 17, 2014
  11. 10/10 Documentation: replace: describe new --edit optionChristian Couder, May 17, 2014
  12. Junio C HamanoMay 19, 2014

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.