chiark / gitweb /
Test suite: Do not fail when git requires --allow-unrelated-histories.
[dgit.git] / tests / lib
index 1a5ec25a84123b78ebbcec66d7ac41764b094ae8..b4642ae89556a05fb38699635ac898d39af224bd 100644 (file)
--- a/tests/lib
+++ b/tests/lib
@@ -228,7 +228,7 @@ t-archive-none () {
                >$tmp/aq/package.new.$p
                t-archive-updated new $p
 
-               ln -s $suite $tmp/aq/dsc_in_suite/$sname
+               ln -sf $suite $tmp/aq/dsc_in_suite/$sname
 
                cat <<END >>$tmp/aq/suites
 $jsondelim
@@ -696,11 +696,13 @@ t-stunt-envvar () {
        local var=$1
        local tstunt=$2
        eval '
-               case "'$var'" in
+               case "$'$var'" in
                "$tstunt:"*)    ;;
                *":$tstunt:"*)  ;;
+               "")             '$var'="$tstunt" ;;
                *)              '$var'="$tstunt:$'$var'" ;;
                esac
+               export '$var'
        '
 }
 
@@ -762,6 +764,18 @@ t-gbp-unapplied-pq2qc () {
        git commit -m 'Commit patch queue'
 }
 
+t-git-pseudo-merge () {
+       # like   git merge -s ours
+       if [ ! "$git_pseuomerge_opts" ]; then
+               if git merge --help \
+                | grep -q allow-unrelated-histories; then
+                       git_pseuomerge_opts='--allow-unrelated-histories'
+               fi
+               git_pseuomerge_opts+=' -s ours'
+       fi
+       git merge $git_pseuomerge_opts "$@"
+}
+
 t-gbp-example-prep () {
        t-tstunt-parsechangelog
        t-archive example 1.0-1
@@ -783,7 +797,7 @@ t-gbp-example-prep () {
 
        t-commit 'some updates' 1.0-2
 
-       git merge -s ours \
+       t-git-pseudo-merge \
                -m 'Pseudo-merge to make descendant of archive' \
                remotes/dgit/dgit/sid
 }