{"thread":{"id":"18699","subject":"[PATCH] mergetool-lib: refactor run_mergetool and check_unchanged","startedAt":"2009-04-03T02:10:03Z","lastAt":"2009-04-03T02:10:03Z","messageCount":1,"participants":["David Aguilar"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"110259","messageId":"1238724603-59551-1-git-send-email-davvid@gmail.com","threadId":"18699","inReplyTo":null,"subject":"[PATCH] mergetool-lib: refactor run_mergetool and check_unchanged","fromName":"David Aguilar","fromEmail":"davvid@gmail.com","sentAt":"2009-04-03T02:10:03Z","receivedAt":"2009-04-03T02:10:03Z","isPatch":true,"sender":{"key":"davvid@gmail.com","avatar":"https://avatars.githubusercontent.com/u/13196?v=4"},"body":"This moves run_mergetool and check_unchanged into mergetool--lib.\ngit-mergetool no longer uses the global $status variable and instead\nchecks the return value of run_mergetool.\n\nSigned-off-by: David Aguilar <davvid@gmail.com>\n---\n git-mergetool--lib.sh |   21 +++++++++++++++++++--\n git-mergetool.sh      |   20 +-------------------\n 2 files changed, 20 insertions(+), 21 deletions(-)\n\ndiff --git a/git-mergetool--lib.sh b/git-mergetool--lib.sh\nindex 91d5453..06d261a 100644\n--- a/git-mergetool--lib.sh\n+++ b/git-mergetool--lib.sh\n@@ -22,9 +22,25 @@ get_merge_tool_path () {\n \techo \"$path\"\n }\n \n-# Overridden in git-mergetool\n check_unchanged () {\n-\ttrue\n+\tif merge_mode; then\n+\t\tif test \"$MERGED\" -nt \"$BACKUP\"; then\n+\t\t\tstatus=0\n+\t\telse\n+\t\t\twhile true; do\n+\t\t\t\techo \"$MERGED seems unchanged.\"\n+\t\t\t\tprintf \"Was the merge successful? [y/n] \"\n+\t\t\t\tread answer < /dev/tty\n+\t\t\t\tcase \"$answer\" in\n+\t\t\t\ty*|Y*) status=0; break ;;\n+\t\t\t\tn*|N*) status=1; break ;;\n+\t\t\t\tesac\n+\t\t\tdone\n+\t\tfi\n+\telse\n+\t\tstatus=0\n+\tfi\n+\treturn $status\n }\n \n valid_tool () {\n@@ -213,4 +229,5 @@ run_mergetool () {\n \t\tfi\n \t\t;;\n \tesac\n+\treturn $status\n }\ndiff --git a/git-mergetool.sh b/git-mergetool.sh\nindex 401c107..298b0a1 100755\n--- a/git-mergetool.sh\n+++ b/git-mergetool.sh\n@@ -112,22 +112,6 @@ resolve_deleted_merge () {\n \tdone\n }\n \n-check_unchanged () {\n-    if test \"$MERGED\" -nt \"$BACKUP\" ; then\n-\tstatus=0;\n-    else\n-\twhile true; do\n-\t    echo \"$MERGED seems unchanged.\"\n-\t    printf \"Was the merge successful? [y/n] \"\n-\t    read answer < /dev/tty\n-\t    case \"$answer\" in\n-\t\ty*|Y*) status=0; break ;;\n-\t\tn*|N*) status=1; break ;;\n-\t    esac\n-\tdone\n-    fi\n-}\n-\n checkout_staged_file () {\n     tmpfile=$(expr \"$(git checkout-index --temp --stage=\"$1\" \"$2\")\" : '\\([^\t]*\\)\t')\n \n@@ -194,9 +178,7 @@ merge_file () {\n     base_present &&\n     present=true\n \n-    run_mergetool \"$merge_tool\" \"$present\"\n-\n-    if test \"$status\" -ne 0; then\n+    if ! run_mergetool \"$merge_tool\" \"$present\"; then\n \techo \"merge of $MERGED failed\" 1>&2\n \tmv -- \"$BACKUP\" \"$MERGED\"\n \n-- \n1.6.1.3\n"}]}