recur vs recursive: help testing without touching too many stuff.
authorJunio C Hamano <junkio@cox.net>
Sun, 9 Jul 2006 07:42:26 +0000 (00:42 -0700)
committerJunio C Hamano <junkio@cox.net>
Fri, 14 Jul 2006 06:10:19 +0000 (23:10 -0700)
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>
TEST
git-merge.sh
git-rebase.sh
t/t3402-rebase-merge.sh
diff --git a/TEST b/TEST
index d5309834740ffc056606bf2a2c971731ecb0ee4a..7286e2a546ffd77524f4a0e40eed3a9ec7e37e78 100755 (executable)
--- a/TEST
+++ b/TEST
@@ -1,10 +1,14 @@
 #!/bin/sh -x
 #!/bin/sh -x
+
 cd t || exit
 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          "$@" &&
 :
 :
index b26ca147c084c963d03effd2462244635f10e1fa..9b681159dcd5e1e22886d101306e496528cb60a4 100755 (executable)
@@ -9,8 +9,13 @@ USAGE='[-n] [--no-commit] [--squash] [-s <strategy>]... <merge-message> <head> <
 LF='
 '
 
 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=
 default_octopus_strategies='octopus'
 no_trivial_merge_strategies='ours'
 use_strategies=
@@ -110,6 +115,10 @@ do
                        strategy="$2"
                        shift ;;
                esac
                        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 " ;;
                case " $all_strategies " in
                *" $strategy "*)
                        use_strategies="$use_strategies$strategy " ;;
index 2a4c8c8a897e1d7f8220601892fd92514e09c65a..8c5da7219e760cd7e57b523eb626629727b1d44b 100755 (executable)
@@ -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
 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
 do_merge=
 dotest=$GIT_DIR/.dotest-merge
 prec=4
@@ -198,6 +204,11 @@ do
        shift
 done
 
        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
 # Make sure we do not have .dotest
 if test -z "$do_merge"
 then
@@ -292,7 +303,7 @@ then
        exit $?
 fi
 
        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
 then
        die 'The recursive merge strategy currently relies on Python,
 which this installation of git was not configured with.  Please consider
index b70e177ddd75ca19c3be2698cb1a998b1bf85759..d34c6cf6f3143bac81b69f79329d2d893e379c39 100755 (executable)
@@ -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 '