X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=tests%2Flib-gdr;h=95d2330e17a60386b59ebd999a4f3703d5112bbb;hp=41e5ef862ac2866df123f4fa1d77d3d7cfb2adb4;hb=7bed50ebbcdf503896de776c0c70656b3dfeea7e;hpb=9f3a065563b0277ee1ffffc747829884aa986e95 diff --git a/tests/lib-gdr b/tests/lib-gdr index 41e5ef86..95d2330e 100644 --- a/tests/lib-gdr +++ b/tests/lib-gdr @@ -18,19 +18,36 @@ t-gdr-good () { # state should be one of # laundered # stitched - # patches + # pushed git diff --quiet ${beforetag-t.before} -- ':.' ':!debian/patches' - local etype netype bwtip + local etypes bwtip + LC_MESSAGES=C t-git-debrebase status >../status.check case $state in laundered) - etype=Upstream + egrep '^ *branch is laundered' ../status.check + ;; + stitched|pushed) + egrep \ + '^ *branch contains furniture|^ *branch is unlaundered|^ *branch needs laundering' ../status.check + egrep '^ stitched$' ../status.check + ;; + esac + + # etypes is either a type, + # or PseudoMerge- + # or AddPatches- + + case $state in + laundered) + etypes=Upstream bwtip=Y:`t-git-debrebase breakwater` ;; - stitched) etype=Pseudomerge ;; - pushed) etype=AddPatches; netype=Pseudomerge ;; + stitched) etypes=Pseudomerge-Upstream ;; + pushed) etypes=AddPatches-Pseudomerge-Upstream ;; + pushed-interop) etypes=Pseudomerge-AddPatchesInterop-Upstream ;; esac t-git-debrebase analyse >../anal.check @@ -40,8 +57,8 @@ t-gdr-good () { while read cid ctype info; do : ===== $cid $ctype $info ===== test $cid = $expect - local cetype=$etype - if [ "x$ctype" = "x$etype" ]; then cetype=SAME; fi + local cetype=${etypes%%-*} + if [ "x$ctype" = "x$cetype" ]; then cetype=SAME; fi local parents="`git log -n1 --pretty=format:%P $cid`" expect="$parents" enparents=1 @@ -52,17 +69,18 @@ t-gdr-good () { Packaging/SAME) ;; Packaging/Upstream) ;; AddPatches/SAME) ;; + AddPatches/AddPatchesInterop) ;; Changelog/Packaging) ;; Changelog/Upstream) ;; Upstream/SAME) ;; Anchor/Upstream) ;; Anchor/Packaging) ;; *) - fail "etype=$etype ctype=$ctype cetype=$cetype $cid" + fail "etypes=$etypes ctype=$ctype cetype=$cetype $cid" ;; esac - case "$ctype/$etype" in + case "$ctype/$etypes" in Packaging/Upstream|\ Changelog/Upstream) if [ "x$bwtip" != x ]; then @@ -71,13 +89,20 @@ 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=} expect=${expect%% *} enparents=2 git diff --quiet $expect..$cid - etype=Upstream + etypes=${etypes#*-} : 'reject pointless pseudomerges' local overwritten=${parents/$expect/} @@ -92,18 +117,17 @@ t-gdr-good () { Packaging) git diff --quiet $expect..$cid -- ':.' ':!debian' git diff --quiet $expect..$cid -- ':debian/patches' - etype=Packaging + etypes=Packaging ;; AddPatches) git diff --quiet $expect..$cid -- \ ':.' ':!debian/patches' - etype=$netype - netype=Upstream + etypes=${etypes#*-} ;; Changelog) git diff --quiet $expect..$cid -- \ ':.' ':!debian/changelog' - etype=Packaging + etypes=Packaging ;; Upstream/SAME) git diff --quiet $expect..$cid -- ':debian' @@ -117,7 +141,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 @@ -131,21 +155,34 @@ t-gdr-good () { t-some-changes () { local token=$1 + local which=${2-dum} 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 "// debian $token" + git add debian/zorkmid + git commit -m "DEBIAN add zorkmid ($token)" + ;; + esac - echo >>src.c "// upstream $token" - git commit -a -m "UPSTREAM edit src.c ($token)" + case "$which" in + *u*) + echo >>src.c "// upstream $token" + git commit -a -m "UPSTREAM edit src.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 src.c; do + echo "// both! $token" >>$f + git add $f + done + git commit -m "MIXED add both ($token)" + ;; + esac t-git-next-date } @@ -185,7 +222,7 @@ t-nmu-upload-2 () { } t-nmu-upload-3 () { - t-dch-commit -r sid + t-dch-commit-r t-dgit -wgf build-source