Skip to content

Commit

Permalink
Revert "git-am: add am.threeWay config variable"
Browse files Browse the repository at this point in the history
This reverts commit d96a275.

It used to be possible to apply a patch series with "git am mbox"
and then only after seeing a failure, switch to three-way mode via
"git am -3" (no other options or arguments).  The commit being
reverted broke this workflow.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
gitster committed Jul 24, 2015
1 parent f99a38c commit 15dc5b5
Show file tree
Hide file tree
Showing 4 changed files with 2 additions and 41 deletions.
8 changes: 0 additions & 8 deletions Documentation/config.txt
Expand Up @@ -769,14 +769,6 @@ am.keepcr::
by giving '--no-keep-cr' from the command line.
See linkgit:git-am[1], linkgit:git-mailsplit[1].

am.threeWay::
By default, `git am` will fail if the patch does not apply cleanly. When
set to true, this setting tells `git am` to fall back on 3-way merge if
the patch records the identity of blobs it is supposed to apply to and
we have those blobs available locally (equivalent to giving the `--3way`
option from the command line). Defaults to `false`.
See linkgit:git-am[1].

apply.ignoreWhitespace::
When set to 'change', tells 'git apply' to ignore changes in
whitespace, in the same way as the '--ignore-space-change'
Expand Down
7 changes: 2 additions & 5 deletions Documentation/git-am.txt
Expand Up @@ -10,7 +10,7 @@ SYNOPSIS
--------
[verse]
'git am' [--signoff] [--keep] [--[no-]keep-cr] [--[no-]utf8]
[--[no-]3way] [--interactive] [--committer-date-is-author-date]
[--3way] [--interactive] [--committer-date-is-author-date]
[--ignore-date] [--ignore-space-change | --ignore-whitespace]
[--whitespace=<option>] [-C<n>] [-p<n>] [--directory=<dir>]
[--exclude=<path>] [--include=<path>] [--reject] [-q | --quiet]
Expand Down Expand Up @@ -90,13 +90,10 @@ default. You can use `--no-utf8` to override this.

-3::
--3way::
--no-3way::
When the patch does not apply cleanly, fall back on
3-way merge if the patch records the identity of blobs
it is supposed to apply to and we have those blobs
available locally. `--no-3way` can be used to override
am.threeWay configuration variable. For more information,
see am.threeWay in linkgit:git-config[1].
available locally.

--ignore-space-change::
--ignore-whitespace::
Expand Down
9 changes: 0 additions & 9 deletions git-am.sh
Expand Up @@ -393,11 +393,6 @@ then
keepcr=t
fi

if test "$(git config --bool --get am.threeWay)" = true
then
threeway=t
fi

while test $# != 0
do
case "$1" in
Expand All @@ -409,8 +404,6 @@ it will be removed. Please do not use it anymore."
;;
-3|--3way)
threeway=t ;;
--no-3way)
threeway=f ;;
-s|--signoff)
sign=t ;;
-u|--utf8)
Expand Down Expand Up @@ -680,8 +673,6 @@ fi
if test "$(cat "$dotest/threeway")" = t
then
threeway=t
else
threeway=f
fi
git_apply_opt=$(cat "$dotest/apply-opt")
if test "$(cat "$dotest/sign")" = t
Expand Down
19 changes: 0 additions & 19 deletions t/t4150-am.sh
Expand Up @@ -303,25 +303,6 @@ test_expect_success 'am -3 -p0 can read --no-prefix patch' '
git diff --exit-code lorem
'

test_expect_success 'am with config am.threeWay falls back to 3-way merge' '
rm -fr .git/rebase-apply &&
git reset --hard &&
git checkout -b lorem4 base3way &&
test_config am.threeWay 1 &&
git am lorem-move.patch &&
test_path_is_missing .git/rebase-apply &&
git diff --exit-code lorem
'

test_expect_success 'am with config am.threeWay overridden by --no-3way' '
rm -fr .git/rebase-apply &&
git reset --hard &&
git checkout -b lorem5 base3way &&
test_config am.threeWay 1 &&
test_must_fail git am --no-3way lorem-move.patch &&
test_path_is_dir .git/rebase-apply
'

test_expect_success 'am can rename a file' '
grep "^rename from" rename.patch &&
rm -fr .git/rebase-apply &&
Expand Down

0 comments on commit 15dc5b5

Please sign in to comment.