recur vs recursive: help testing without touching too many stuff.
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>
This commit is contained in:
parent
6d297f8137
commit
06d30f4f3e
18
TEST
18
TEST
@ -1,10 +1,14 @@
|
|||||||
#!/bin/sh -x
|
#!/bin/sh -x
|
||||||
|
|
||||||
cd t || exit
|
cd t || exit
|
||||||
./t3400-rebase.sh "$@" && \
|
GIT_USE_RECUR_FOR_RECURSIVE=LetsTryIt
|
||||||
./t6020-merge-df.sh "$@" && \
|
export GIT_USE_RECUR_FOR_RECURSIVE
|
||||||
./t3401-rebase-partial.sh "$@" && \
|
|
||||||
./t6021-merge-criss-cross.sh "$@" && \
|
./t3400-rebase.sh "$@" &&
|
||||||
./t3402-rebase-merge.sh "$@" && \
|
./t6020-merge-df.sh "$@" &&
|
||||||
./t6022-merge-rename.sh "$@" && \
|
./t3401-rebase-partial.sh "$@" &&
|
||||||
./t6010-merge-base.sh "$@" && \
|
./t6021-merge-criss-cross.sh "$@" &&
|
||||||
|
./t3402-rebase-merge.sh "$@" &&
|
||||||
|
./t6022-merge-rename.sh "$@" &&
|
||||||
|
./t6010-merge-base.sh "$@" &&
|
||||||
:
|
:
|
||||||
|
13
git-merge.sh
13
git-merge.sh
@ -9,8 +9,13 @@ USAGE='[-n] [--no-commit] [--squash] [-s <strategy>]... <merge-message> <head> <
|
|||||||
LF='
|
LF='
|
||||||
'
|
'
|
||||||
|
|
||||||
all_strategies='recur recur octopus resolve stupid ours'
|
all_strategies='recursive recur octopus resolve stupid ours'
|
||||||
default_twohead_strategies='recur'
|
case "${GIT_USE_RECUR_FOR_RECURSIVE}" in
|
||||||
|
'')
|
||||||
|
default_twohead_strategies=recursive ;;
|
||||||
|
?*)
|
||||||
|
default_twohead_strategies=recur ;;
|
||||||
|
esac
|
||||||
default_octopus_strategies='octopus'
|
default_octopus_strategies='octopus'
|
||||||
no_trivial_merge_strategies='ours'
|
no_trivial_merge_strategies='ours'
|
||||||
use_strategies=
|
use_strategies=
|
||||||
@ -110,6 +115,10 @@ do
|
|||||||
strategy="$2"
|
strategy="$2"
|
||||||
shift ;;
|
shift ;;
|
||||||
esac
|
esac
|
||||||
|
case "$strategy,${GIT_USE_RECUR_FOR_RECURSIVE}" in
|
||||||
|
recursive,?*)
|
||||||
|
strategy=recur ;;
|
||||||
|
esac
|
||||||
case " $all_strategies " in
|
case " $all_strategies " in
|
||||||
*" $strategy "*)
|
*" $strategy "*)
|
||||||
use_strategies="$use_strategies$strategy " ;;
|
use_strategies="$use_strategies$strategy " ;;
|
||||||
|
@ -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\".
|
To restore the original branch and stop rebasing run \"git rebase --abort\".
|
||||||
"
|
"
|
||||||
unset newbase
|
unset newbase
|
||||||
strategy=recur
|
case "${GIT_USE_RECUR_FOR_RECURSIVE}" in
|
||||||
|
'')
|
||||||
|
strategy=recursive ;;
|
||||||
|
?*)
|
||||||
|
strategy=recur ;;
|
||||||
|
esac
|
||||||
|
|
||||||
do_merge=
|
do_merge=
|
||||||
dotest=$GIT_DIR/.dotest-merge
|
dotest=$GIT_DIR/.dotest-merge
|
||||||
prec=4
|
prec=4
|
||||||
@ -198,6 +204,11 @@ do
|
|||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
|
|
||||||
|
case "$strategy,${GIT_USE_RECUR_FOR_RECURSIVE}" in
|
||||||
|
recursive,?*)
|
||||||
|
strategy=recur ;;
|
||||||
|
esac
|
||||||
|
|
||||||
# Make sure we do not have .dotest
|
# Make sure we do not have .dotest
|
||||||
if test -z "$do_merge"
|
if test -z "$do_merge"
|
||||||
then
|
then
|
||||||
@ -292,7 +303,7 @@ then
|
|||||||
exit $?
|
exit $?
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "@@NO_PYTHON@@" && test "$strategy" = "recur"
|
if test "@@NO_PYTHON@@" && test "$strategy" = "recursive"
|
||||||
then
|
then
|
||||||
die 'The recursive merge strategy currently relies on Python,
|
die 'The recursive merge strategy currently relies on Python,
|
||||||
which this installation of git was not configured with. Please consider
|
which this installation of git was not configured with. Please consider
|
||||||
|
@ -51,7 +51,7 @@ test_expect_success setup '
|
|||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'reference merge' '
|
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 '
|
test_expect_success rebase '
|
||||||
|
Loading…
Reference in New Issue
Block a user