Skip to content

Commit

Permalink
recur vs recursive: help testing without touching too many stuff.
Browse files Browse the repository at this point in the history
During git-merge-recur development, you could set an environment
variable GIT_USE_RECUR_FOR_RECURSIVE to use WIP recur in place
of the recursive strategy.

Signed-off-by: Junio C Hamano <junkio@cox.net>
  • Loading branch information
Junio C Hamano committed Jul 14, 2006
1 parent 6d297f8 commit 06d30f4
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 12 deletions.
18 changes: 11 additions & 7 deletions TEST
@@ -1,10 +1,14 @@
#!/bin/sh -x

cd t || exit
./t3400-rebase.sh "$@" && \
./t6020-merge-df.sh "$@" && \
./t3401-rebase-partial.sh "$@" && \
./t6021-merge-criss-cross.sh "$@" && \
./t3402-rebase-merge.sh "$@" && \
./t6022-merge-rename.sh "$@" && \
./t6010-merge-base.sh "$@" && \
GIT_USE_RECUR_FOR_RECURSIVE=LetsTryIt
export GIT_USE_RECUR_FOR_RECURSIVE

./t3400-rebase.sh "$@" &&
./t6020-merge-df.sh "$@" &&
./t3401-rebase-partial.sh "$@" &&
./t6021-merge-criss-cross.sh "$@" &&
./t3402-rebase-merge.sh "$@" &&
./t6022-merge-rename.sh "$@" &&
./t6010-merge-base.sh "$@" &&
:
13 changes: 11 additions & 2 deletions git-merge.sh
Expand Up @@ -9,8 +9,13 @@ USAGE='[-n] [--no-commit] [--squash] [-s <strategy>]... <merge-message> <head> <
LF='
'

all_strategies='recur recur octopus resolve stupid ours'
default_twohead_strategies='recur'
all_strategies='recursive recur octopus resolve stupid ours'
case "${GIT_USE_RECUR_FOR_RECURSIVE}" in
'')
default_twohead_strategies=recursive ;;
?*)
default_twohead_strategies=recur ;;
esac
default_octopus_strategies='octopus'
no_trivial_merge_strategies='ours'
use_strategies=
Expand Down Expand Up @@ -110,6 +115,10 @@ do
strategy="$2"
shift ;;
esac
case "$strategy,${GIT_USE_RECUR_FOR_RECURSIVE}" in
recursive,?*)
strategy=recur ;;
esac
case " $all_strategies " in
*" $strategy "*)
use_strategies="$use_strategies$strategy " ;;
Expand Down
15 changes: 13 additions & 2 deletions git-rebase.sh
Expand Up @@ -35,7 +35,13 @@ If you would prefer to skip this patch, instead run \"git rebase --skip\".
To restore the original branch and stop rebasing run \"git rebase --abort\".
"
unset newbase
strategy=recur
case "${GIT_USE_RECUR_FOR_RECURSIVE}" in
'')
strategy=recursive ;;
?*)
strategy=recur ;;
esac

do_merge=
dotest=$GIT_DIR/.dotest-merge
prec=4
Expand Down Expand Up @@ -198,6 +204,11 @@ do
shift
done

case "$strategy,${GIT_USE_RECUR_FOR_RECURSIVE}" in
recursive,?*)
strategy=recur ;;
esac

# Make sure we do not have .dotest
if test -z "$do_merge"
then
Expand Down Expand Up @@ -292,7 +303,7 @@ then
exit $?
fi

if test "@@NO_PYTHON@@" && test "$strategy" = "recur"
if test "@@NO_PYTHON@@" && test "$strategy" = "recursive"
then
die 'The recursive merge strategy currently relies on Python,
which this installation of git was not configured with. Please consider
Expand Down
2 changes: 1 addition & 1 deletion t/t3402-rebase-merge.sh
Expand Up @@ -51,7 +51,7 @@ test_expect_success setup '
'

test_expect_success 'reference merge' '
git merge -s recur "reference merge" HEAD master
git merge -s recursive "reference merge" HEAD master
'

test_expect_success rebase '
Expand Down

0 comments on commit 06d30f4

Please sign in to comment.