Skip to content
Snippets Groups Projects
Commit b91a13bb authored by Junio C Hamano's avatar Junio C Hamano
Browse files

Merge branch 'jc/am-3-nonstandard-popt' into maint

The code to synthesize the fake ancestor tree used by 3-way merge
fallback in "git am" was not prepared to read a patch created with
a non-standard -p<num> value.

* jc/am-3-nonstandard-popt:
  test: "am -3" can accept non-standard -p<num>
  am -3: allow nonstandard -p<num> option
parents 0dbe6592 a61ba26a
No related branches found
No related tags found
No related merge requests found
...@@ -127,15 +127,18 @@ fall_back_3way () { ...@@ -127,15 +127,18 @@ fall_back_3way () {
mkdir "$dotest/patch-merge-tmp-dir" mkdir "$dotest/patch-merge-tmp-dir"
# First see if the patch records the index info that we can use. # First see if the patch records the index info that we can use.
git apply --build-fake-ancestor "$dotest/patch-merge-tmp-index" \ cmd="git apply $git_apply_opt --build-fake-ancestor" &&
"$dotest/patch" && cmd="$cmd "'"$dotest/patch-merge-tmp-index" "$dotest/patch"' &&
eval "$cmd" &&
GIT_INDEX_FILE="$dotest/patch-merge-tmp-index" \ GIT_INDEX_FILE="$dotest/patch-merge-tmp-index" \
git write-tree >"$dotest/patch-merge-base+" || git write-tree >"$dotest/patch-merge-base+" ||
cannot_fallback "$(gettext "Repository lacks necessary blobs to fall back on 3-way merge.")" cannot_fallback "$(gettext "Repository lacks necessary blobs to fall back on 3-way merge.")"
say Using index info to reconstruct a base tree... say Using index info to reconstruct a base tree...
if GIT_INDEX_FILE="$dotest/patch-merge-tmp-index" \
git apply --cached <"$dotest/patch" cmd='GIT_INDEX_FILE="$dotest/patch-merge-tmp-index"'
cmd="$cmd git apply --cached $git_apply_opt"' <"$dotest/patch"'
if eval "$cmd"
then then
mv "$dotest/patch-merge-base+" "$dotest/patch-merge-base" mv "$dotest/patch-merge-base+" "$dotest/patch-merge-base"
mv "$dotest/patch-merge-tmp-index" "$dotest/patch-merge-index" mv "$dotest/patch-merge-tmp-index" "$dotest/patch-merge-index"
......
...@@ -123,6 +123,7 @@ test_expect_success setup ' ...@@ -123,6 +123,7 @@ test_expect_success setup '
git commit -m "added another file" && git commit -m "added another file" &&
git format-patch --stdout master >lorem-move.patch && git format-patch --stdout master >lorem-move.patch &&
git format-patch --no-prefix --stdout master >lorem-zero.patch &&
git checkout -b rename && git checkout -b rename &&
git mv file renamed && git mv file renamed &&
...@@ -276,6 +277,20 @@ test_expect_success 'am -3 falls back to 3-way merge' ' ...@@ -276,6 +277,20 @@ test_expect_success 'am -3 falls back to 3-way merge' '
git diff --exit-code lorem git diff --exit-code lorem
' '
test_expect_success 'am -3 -p0 can read --no-prefix patch' '
rm -fr .git/rebase-apply &&
git reset --hard &&
git checkout -b lorem3 master2 &&
sed -n -e "3,\$p" msg >file &&
head -n 9 msg >>file &&
git add file &&
test_tick &&
git commit -m "copied stuff" &&
git am -3 -p0 lorem-zero.patch &&
! test -d .git/rebase-apply &&
git diff --exit-code lorem
'
test_expect_success 'am can rename a file' ' test_expect_success 'am can rename a file' '
grep "^rename from" rename.patch && grep "^rename from" rename.patch &&
rm -fr .git/rebase-apply && rm -fr .git/rebase-apply &&
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment