X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=tests%2Flib-gdr;h=bda2679ab235468a0a0f2b99be1e122249acdb70;hp=1bb810fef4445ed046d078973d3fd0312333bd62;hb=f98193abb116498a8ad6173a7434874a6c629fd1;hpb=a676bb68111e13736dd58b4d08c754d6150e359e diff --git a/tests/lib-gdr b/tests/lib-gdr index 1bb810fe..bda2679a 100644 --- a/tests/lib-gdr +++ b/tests/lib-gdr @@ -23,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) @@ -37,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- @@ -49,11 +56,13 @@ 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 ===== @@ -69,6 +78,8 @@ t-gdr-good () { Pseudomerge/SAME) ;; Packaging/SAME) ;; Packaging/Upstream) ;; + MergedBreakwaters/Packaging) ;; + MergedBreakwaters/Upstream) ;; AddPatches/SAME) ;; AddPatches/AddPatchesInterop) ;; Changelog/Packaging) ;; @@ -108,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 @@ -133,6 +144,9 @@ t-gdr-good () { Upstream/SAME) git diff --quiet $expect..$cid -- ':debian' ;; + MergedBreakwaters) + enparents=2 + ;; Anchor) break ;; @@ -151,6 +165,19 @@ 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 } @@ -291,3 +318,44 @@ 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 +} + +t-gdr-gbp-import-core () { + p=example + t-worktree 1.1 + + cd example + + : 'fake up some kind of upstream' + git checkout -b upstream quilt-tip + rm -rf debian + mkdir debian + echo junk >debian/rules + git add debian + git commit -m "an upstream retcon ($0)" + git tag v1.0 + + : 'fake up that our quilt-tip was descended from upstream' + git checkout quilt-tip + git merge --no-edit -s ours upstream + + : 'fake up that our quilt-tip had the patch queue in it' + git checkout patch-queue/quilt-tip + gbp pq export + git add debian/patches + git commit -m "patch queue update ($0)" + + : 'make branch names more conventional' + git branch -D master + git branch -m quilt-tip master +}