X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=tests%2Flib-gdr;h=9d9fcb461a09025a173f8dc8d23af0b5ee2a8fc5;hb=d806e898308acbaca5685a4dec6688c0164ea642;hp=08717dd413c113cfc7eca638c2a85058de3b3b89;hpb=817b18a94707497d21c5a467bdd789e7b039f666;p=dgit.git diff --git a/tests/lib-gdr b/tests/lib-gdr index 08717dd4..9d9fcb46 100644 --- a/tests/lib-gdr +++ b/tests/lib-gdr @@ -7,7 +7,8 @@ t-git-debrebase () { local gdr=${DGIT_GITDEBREBASE_TEST-git-debrebase} : ' {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{' - $gdr $GDR_TEST_OPTS $GDR_TEST_DEBUG $t_gdr_xopts "$@" + $gdr "--dgit=${DGIT_TEST-dgit}" $GDR_TEST_OPTS \ + $GDR_TEST_DEBUG $t_gdr_xopts "$@" : '}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} ' } @@ -22,8 +23,6 @@ t-gdr-good () { git diff --quiet ${beforetag-t.before} -- ':.' ':!debian/patches' - local etypes bwtip - LC_MESSAGES=C t-git-debrebase status >../status.check case $state in laundered) @@ -36,6 +35,15 @@ t-gdr-good () { ;; esac + t-gdr-good-analyse HEAD $state +} + +t-gdr-good-analyse () { + local head=$1 + local state=$2 + local wsfx=$3 + local etypes bwtip + # etypes is either a type, # or PseudoMerge- # or AddPatches- @@ -47,11 +55,14 @@ t-gdr-good () { ;; stitched) etypes=Pseudomerge-Upstream ;; pushed) etypes=AddPatches-Pseudomerge-Upstream ;; + pushed-interop) etypes=Pseudomerge-AddPatchesInterop-Upstream ;; + breakwater) etypes=Packaging ;; esac - t-git-debrebase analyse >../anal.check - expect=`git rev-parse HEAD` - exec <../anal.check + anal=../anal$wsfx + t-git-debrebase analyse $head >$anal.check + expect=`git rev-parse $head` + exec <$anal.check local cid ctype info nparents while read cid ctype info; do : ===== $cid $ctype $info ===== @@ -67,7 +78,10 @@ t-gdr-good () { Pseudomerge/SAME) ;; Packaging/SAME) ;; Packaging/Upstream) ;; + MergedBreakwaters/Packaging) ;; + MergedBreakwaters/Upstream) ;; AddPatches/SAME) ;; + AddPatches/AddPatchesInterop) ;; Changelog/Packaging) ;; Changelog/Upstream) ;; Upstream/SAME) ;; @@ -87,6 +101,13 @@ t-gdr-good () { fi esac + case "$cetype" in + AddPatchesInterop) + git log -n1 --pretty=format:%B \ + | grep '^\[git-debrebase[ :]' + ;; + esac + case "$ctype" in Pseudomerge) expect=${info#Contributor=} @@ -98,9 +119,9 @@ t-gdr-good () { : 'reject pointless pseudomerges' local overwritten=${parents/$expect/} overwritten=${overwritten// /} - t-git-debrebase analyse $overwritten >../anal.overwr + t-git-debrebase analyse $overwritten >$anal.overwr local ocid otype oinfo - read <../anal.overwr ocid otype oinfo + read <$anal.overwr ocid otype oinfo case "$otype" in Pseudomerge) test "x$info" != "x$oinfo" ;; esac @@ -123,6 +144,9 @@ t-gdr-good () { Upstream/SAME) git diff --quiet $expect..$cid -- ':debian' ;; + MergedBreakwaters) + enparents=2 + ;; Anchor) break ;; @@ -132,7 +156,7 @@ t-gdr-good () { test $cnparents = $enparents local cndparents=` - for f in $parents; do echo $f; done | sort -u | wc -w + for f in $parents; do echo $f; done | t-sort -u | wc -w ` test $cndparents = $cnparents @@ -141,26 +165,54 @@ t-gdr-good () { *) fail 'unexpected parent' ;; esac + case "$ctype" in + MergedBreakwaters) + local f + local parent_ix=0 + for f in $parents; do + t-gdr-good-analyse $f breakwater \ + $wsfx-mp$parent_ix + parent_ix=$(( $parent_ix + 1 )) + done + return + ;; + esac + done } t-some-changes () { local token=$1 + local which=${2:-dum} + local fsuffix=$3 t-git-next-date - echo >>debian/zorkmid "// debian $token" - git add debian/zorkmid - git commit -m "DEBIAN add zorkmid ($token)" + case "$which" in + *d*) + echo >>debian/zorkmid$fsuffix "// debian $token" + git add debian/zorkmid$fsuffix + git commit -m "DEBIAN add zorkmid$fsuffix ($token)" + ;; + esac - echo >>src.c "// upstream $token" - git commit -a -m "UPSTREAM edit src.c ($token)" + case "$which" in + *u*) + echo >>src$fsuffix.c "// upstream $token" + git add src$fsuffix.c + git commit -m "UPSTREAM edit src$fsuffix.c ($token)" + ;; + esac - for f in debian/zorkmid src.c; do - echo "// both! $token" >>$f - git add $f - done - git commit -m "MIXED add both ($token)" + case "$which" in + *m*) + for f in debian/zorkmid$fsuffix src$fsuffix.c; do + echo "// both! $token" >>$f + git add $f + done + git commit -m "MIXED add both($fsuffix) ($token)" + ;; + esac t-git-next-date } @@ -200,7 +252,7 @@ t-nmu-upload-2 () { } t-nmu-upload-3 () { - t-dch-commit -r sid + t-dch-commit-r t-dgit -wgf build-source @@ -266,3 +318,14 @@ t-nmu-reconciled-good () { git checkout master t-dgit -wgf quilt-fixup } + +t-gdr-prep-new-upstream () { + uv=$1 + t-git-next-date + git checkout make-upstream + git reset --hard upstream + t-make-new-upstream-tarball $uv + git push . make-upstream:upstream + git checkout master + t-git-next-date +}