Skip to content

Commit

Permalink
am -3: allow nonstandard -p<num> option
Browse files Browse the repository at this point in the history
When falling back to 3-way merge, we run "git apply" to synthesize the
fake ancestor tree by parsing the incoming patch, and another "git apply"
to apply the patch to the fake ancestor tree.  Both invocation need to
be aware of the custom -p<num> setting to parse patches that were prepared
with non-standard src/dst prefix.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Junio C Hamano committed Feb 23, 2012
1 parent d0482e8 commit 4056afb
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions git-am.sh
Original file line number Diff line number Diff line change
Expand Up @@ -127,15 +127,18 @@ fall_back_3way () {
mkdir "$dotest/patch-merge-tmp-dir"

# First see if the patch records the index info that we can use.
git apply --build-fake-ancestor "$dotest/patch-merge-tmp-index" \
"$dotest/patch" &&
cmd="git apply $git_apply_opt --build-fake-ancestor" &&
cmd="$cmd "'"$dotest/patch-merge-tmp-index" "$dotest/patch"' &&
eval "$cmd" &&
GIT_INDEX_FILE="$dotest/patch-merge-tmp-index" \
git write-tree >"$dotest/patch-merge-base+" ||
cannot_fallback "$(gettext "Repository lacks necessary blobs to fall back on 3-way merge.")"

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
mv "$dotest/patch-merge-base+" "$dotest/patch-merge-base"
mv "$dotest/patch-merge-tmp-index" "$dotest/patch-merge-index"
Expand Down

0 comments on commit 4056afb

Please sign in to comment.