-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'pt/am-builtin-options'
After "git am --opt1" stops, running "git am --opt2" pays attention to "--opt2" only for the patch that caused the original invocation to stop. * pt/am-builtin-options: am: let --signoff override --no-signoff am: let command-line options override saved options test_terminal: redirect child process' stdin to a pty
- Loading branch information
Showing
3 changed files
with
166 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
#!/bin/sh | ||
|
||
test_description='git-am command-line options override saved options' | ||
|
||
. ./test-lib.sh | ||
. "$TEST_DIRECTORY"/lib-terminal.sh | ||
|
||
format_patch () { | ||
git format-patch --stdout -1 "$1" >"$1".eml | ||
} | ||
|
||
test_expect_success 'setup' ' | ||
test_commit initial file && | ||
test_commit first file && | ||
git checkout initial && | ||
git mv file file2 && | ||
test_tick && | ||
git commit -m renamed-file && | ||
git tag renamed-file && | ||
git checkout -b side initial && | ||
test_commit side1 file && | ||
test_commit side2 file && | ||
format_patch side1 && | ||
format_patch side2 | ||
' | ||
|
||
test_expect_success TTY '--3way overrides --no-3way' ' | ||
rm -fr .git/rebase-apply && | ||
git reset --hard && | ||
git checkout renamed-file && | ||
# Applying side1 will fail as the file has been renamed. | ||
test_must_fail git am --no-3way side[12].eml && | ||
test_path_is_dir .git/rebase-apply && | ||
test_cmp_rev renamed-file HEAD && | ||
test -z "$(git ls-files -u)" && | ||
# Applying side1 with am --3way will succeed due to the threeway-merge. | ||
# Applying side2 will fail as --3way does not apply to it. | ||
test_must_fail test_terminal git am --3way </dev/zero && | ||
test_path_is_dir .git/rebase-apply && | ||
test side1 = "$(cat file2)" | ||
' | ||
|
||
test_expect_success '--no-quiet overrides --quiet' ' | ||
rm -fr .git/rebase-apply && | ||
git reset --hard && | ||
git checkout first && | ||
# Applying side1 will be quiet. | ||
test_must_fail git am --quiet side[123].eml >out && | ||
test_path_is_dir .git/rebase-apply && | ||
! test_i18ngrep "^Applying: " out && | ||
echo side1 >file && | ||
git add file && | ||
# Applying side1 will not be quiet. | ||
# Applying side2 will be quiet. | ||
git am --no-quiet --continue >out && | ||
echo "Applying: side1" >expected && | ||
test_i18ncmp expected out | ||
' | ||
|
||
test_expect_success '--signoff overrides --no-signoff' ' | ||
rm -fr .git/rebase-apply && | ||
git reset --hard && | ||
git checkout first && | ||
test_must_fail git am --no-signoff side[12].eml && | ||
test_path_is_dir .git/rebase-apply && | ||
echo side1 >file && | ||
git add file && | ||
git am --signoff --continue && | ||
# Applied side1 will be signed off | ||
echo "Signed-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>" >expected && | ||
git cat-file commit HEAD^ | grep "Signed-off-by:" >actual && | ||
test_cmp expected actual && | ||
# Applied side2 will not be signed off | ||
test $(git cat-file commit HEAD | grep -c "Signed-off-by:") -eq 0 | ||
' | ||
|
||
test_expect_success TTY '--reject overrides --no-reject' ' | ||
rm -fr .git/rebase-apply && | ||
git reset --hard && | ||
git checkout first && | ||
rm -f file.rej && | ||
test_must_fail git am --no-reject side1.eml && | ||
test_path_is_dir .git/rebase-apply && | ||
test_path_is_missing file.rej && | ||
test_must_fail test_terminal git am --reject </dev/zero && | ||
test_path_is_dir .git/rebase-apply && | ||
test_path_is_file file.rej | ||
' | ||
|
||
test_done |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters