mergetool: honor -O<orderfile>
PATCH v4 4/4 mergetool: honor -O<orderfile>
Teach mergetool to pass "-O<orderfile>" down to git diff when specified on the command-line.
---
Since v3:
I missed one last piped invocation of "git mergetool" in the tests, which has been fixed.
Documentation/git-mergetool.txt | 10 ++++++---- git-mergetool.sh | 9 +++++++-- t/t7610-mergetool.sh | 27 +++++++++++++++++++++++++++ 3 files changed, 40 insertions(+), 6 deletions(-)
Documentation/git-mergetool.txt +6 -4
@@ -79,10 +79,12 @@ success of the resolution after the custom tool has exited. Prompt before each invocation of the merge resolution program to give the user a chance to skip the path. -DIFF ORDER FILES ----------------- -`git mergetool` honors the `diff.orderFile` configuration variable -used by `git diff`. See linkgit:git-config[1] for more details. +-O<orderfile>:: + Process files in the order specified in the + <orderfile>, which has one shell glob pattern per line. + This overrides the `diff.orderFile` configuration variable + (see linkgit:git-config[1]). To cancel `diff.orderFile`, + use `-O/dev/null`. TEMPORARY FILES ---------------
git-mergetool.sh +7 -2
@@ -9,7 +9,7 @@ # at the discretion of Junio C Hamano. # -USAGE='[--tool=tool] [--tool-help] [-y|--no-prompt|--prompt] [file to merge] ...' +USAGE='[--tool=tool] [--tool-help] [-y|--no-prompt|--prompt] [-O<orderfile>] [file to merge] ...' SUBDIRECTORY_OK=Yes NONGIT_OK=Yes OPTIONS_SPEC=
@@ -390,6 +390,7 @@ print_noop_and_exit () { main () { prompt=$(git config --bool mergetool.prompt) guessed_merge_tool=false + orderfile= while test $# != 0 do
@@ -419,6 +420,9 @@ main () { --prompt) prompt=true ;; + -O*) + orderfile="$1" + ;; --) shift break
@@ -460,7 +464,8 @@ main () { fi files=$(git -c core.quotePath=false \ - diff --name-only --diff-filter=U -- "$@") + diff --name-only --diff-filter=U \ + ${orderfile:+"$orderfile"} -- "$@") cd_to_toplevel
t/t7610-mergetool.sh +27 -0
@@ -638,5 +638,32 @@ test_expect_success 'diff.orderFile configuration is honored' ' test_cmp expect actual && git reset --hard >/dev/null ' +test_expect_success 'mergetool -Oorder-file is honored' ' + test_config diff.orderFile order-file && + test_config mergetool.myecho.cmd "echo \"\$LOCAL\"" && + test_config mergetool.myecho.trustExitCode true && + test_must_fail git merge order-file-side1 && + cat >expect <<-\EOF && + Merging: + a + b + EOF + git mergetool -O/dev/null --no-prompt --tool myecho >output && + git grep --no-index -h -A2 Merging: output >actual && + test_cmp expect actual && + git reset --hard >/dev/null 2>&1 && + + git config --unset diff.orderFile && + test_must_fail git merge order-file-side1 && + cat >expect <<-\EOF && + Merging: + b + a + EOF + git mergetool -Oorder-file --no-prompt --tool myecho >output && + git grep --no-index -h -A2 Merging: output >actual && + test_cmp expect actual && + git reset --hard >/dev/null 2>&1 +' test_done
Signature · 1 line
2.10.1.386.g8ee99a0
With this final fixup, the series looks good to me, and I have no further comments.
-- Hannes
Quoted 10 lines · David Aguilar
Teach mergetool to pass "-O<orderfile>" down to
git diffwhen specified on the command-line.Helped-by Johannes Sixt <[email protected]>Signed-off-by David Aguilar <[email protected]>---
Since v3:I missed one last piped invocation of "git mergetool" in the tests, which has been fixed.
I only see 4/4 in v4; am I correct to assume that 1-3/4 of v4 are the same as their counterparts in v3?
Quoted 10 lines · Junio C Hamano
Quoted 8 lines · David Aguilar
Teach mergetool to pass "-O<orderfile>" down to
git diffwhen specified on the command-line.Helped-by Johannes Sixt <[email protected]>Signed-off-by David Aguilar <[email protected]>---
Since v3:
Quoted 5 lines
Quoted 2 lines
I missed one last piped invocation of "git mergetool" in the tests, which has been fixed.
I only see 4/4 in v4; am I correct to assume that 1-3/4 of v4 are the same as their counterparts in v3?
Yes, 1-3 are unchanged since v3.
Thanks for checking,
Signature · 1 line
David
Quoted 5 lines · David Aguilar
Quoted 2 lines
I only see 4/4 in v4; am I correct to assume that 1-3/4 of v4 are the same as their counterparts in v3?
Yes, 1-3 are unchanged since v3.
Thanks for checking,
I'll queue these four with Reviewed-by's from j6t.
Thanks, both.