X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=tests%2Flib-gdr;h=08717dd413c113cfc7eca638c2a85058de3b3b89;hb=817b18a94707497d21c5a467bdd789e7b039f666;hp=9a23cd5bab5085db3a3b55f37d6fad5277c62100;hpb=27f43c89f66b2ca6d159a38cabb942ca18774857;p=dgit.git diff --git a/tests/lib-gdr b/tests/lib-gdr index 9a23cd5b..08717dd4 100644 --- a/tests/lib-gdr +++ b/tests/lib-gdr @@ -18,19 +18,35 @@ 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 ;; esac t-git-debrebase analyse >../anal.check @@ -40,8 +56,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 @@ -58,11 +74,11 @@ t-gdr-good () { 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 @@ -77,23 +93,32 @@ t-gdr-good () { expect=${expect%% *} enparents=2 git diff --quiet $expect..$cid - etype=Upstream + etypes=${etypes#*-} + + : 'reject pointless pseudomerges' + local overwritten=${parents/$expect/} + overwritten=${overwritten// /} + t-git-debrebase analyse $overwritten >../anal.overwr + local ocid otype oinfo + read <../anal.overwr ocid otype oinfo + case "$otype" in + Pseudomerge) test "x$info" != "x$oinfo" ;; + esac ;; 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'