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

[PATCH] mergetool: Suppress stderr and fix the "both added" test

From
David Aguilar <davvid@gmail.com>
Date
Jan 21, 2012, 10:26 UTC
Message-ID
<1327141578-54796-1-git-send-email-davvid@gmail.com>

Silence error messages when "git checkout-index" is used to checkout a stage that does not exist. This can happen now that mergetool calls checkout_staged_file() unconditionally when creating the temporary $BASE, $LOCAL, and $REMOTE files.

Fix the test so that it checks the contents of the "both added" file. The test was passing as a consequence of accidentally handing a bad path to "cat".

Signed-off-by: David Aguilar <davvid@gmail.com>
---
This applies on top of da/maint-mergetool-twoway in pu.
 git-mergetool.sh     |    4 +++-
 t/t7610-mergetool.sh |    5 +++--
 2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/git-mergetool.sh b/git-mergetool.sh
index 24bedc5..a9f23f7 100755
--- a/git-mergetool.sh
+++ b/git-mergetool.sh
@@ -181,7 +181,9 @@ stage_submodule () {
 }
 
 checkout_staged_file () {
-    tmpfile=$(expr "$(git checkout-index --temp --stage="$1" "$2")" : '\([^	]*\)	')
+    tmpfile=$(expr \
+	    "$(git checkout-index --temp --stage="$1" "$2" 2>/dev/null)" \
+	    : '\([^	]*\)	')
 
     if test $? -eq 0 -a -n "$tmpfile" ; then
 	mv -- "$(git rev-parse --show-cdup)$tmpfile" "$3"
diff --git a/t/t7610-mergetool.sh b/t/t7610-mergetool.sh
index 2272743..3f261a3 100755
--- a/t/t7610-mergetool.sh
+++ b/t/t7610-mergetool.sh
@@ -465,8 +465,9 @@ test_expect_success 'directory vs modified submodule' '
 test_expect_success 'file with no base' '
     git checkout -b test13 branch1 &&
     test_must_fail git merge master &&
-    git mergetool --no-prompt --tool mybase -- base &&
-    test "$(cat "$MERGED")" = "" &&
+    git mergetool --no-prompt --tool mybase -- both &&
+    >expected &&
+    test_cmp both expected &&
     git reset --hard master >/dev/null 2>&1
 '
 
-- 
1.7.7.166.g1cd0c
Next: Junio C Hamano
Message 1 of 3 in “mergetool: Suppress stderr and fix the "both added" test”
  1. mergetool: Suppress stderr and fix the "both added" testDavid Aguilar, Jan 21, 2012
  2. Junio C HamanoJan 21, 2012
  3. David AguilarJan 21, 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.