Merge branch 'zh/difftool-skip-to'

"git difftool" learned "--skip-to=<path>" option to restart an
interrupted session from an arbitrary path.

* zh/difftool-skip-to:
  difftool.c: learn a new way start at specified file
This commit is contained in:
Junio C Hamano 2021-02-25 16:43:31 -08:00
commit 6eea44cee1
2 changed files with 40 additions and 0 deletions

View File

@ -34,6 +34,14 @@ OPTIONS
This is the default behaviour; the option is provided to
override any configuration settings.
--rotate-to=<file>::
Start showing the diff for the given path,
the paths before it will move to end and output.
--skip-to=<file>::
Start showing the diff for the given path, skipping all
the paths before it.
-t <tool>::
--tool=<tool>::
Use the diff tool specified by <tool>. Valid values include

View File

@ -762,4 +762,36 @@ test_expect_success 'difftool --gui, --tool and --extcmd are mutually exclusive'
test_must_fail git difftool --gui --tool=test-tool --extcmd=cat
'
test_expect_success 'difftool --rotate-to' '
difftool_test_setup &&
test_when_finished git reset --hard &&
echo 1 >1 &&
echo 2 >2 &&
echo 4 >4 &&
git add 1 2 4 &&
git commit -a -m "124" &&
git difftool --no-prompt --extcmd=cat --rotate-to="2" HEAD^ >output&&
cat >expect <<-\EOF &&
2
4
1
EOF
test_cmp output expect
'
test_expect_success 'difftool --skip-to' '
difftool_test_setup &&
test_when_finished git reset --hard &&
git difftool --no-prompt --extcmd=cat --skip-to="2" HEAD^ >output &&
cat >expect <<-\EOF &&
2
4
EOF
test_cmp output expect
'
test_expect_success 'difftool --rotate/skip-to error condition' '
test_must_fail git difftool --no-prompt --extcmd=cat --rotate-to="3" HEAD^ &&
test_must_fail git difftool --no-prompt --extcmd=cat --skip-to="3" HEAD^
'
test_done