X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=tests%2Flib-gdr;h=c80dead656ade953a80a2c8ef836a50c15a3bc09;hb=b95109f18261edb47dda96bfd160fb2b79e39a41;hp=d45759d778aec9f8b7941c56cca208340aee0e94;hpb=2045d087abc4445b98649af8eb4883c05573a324;p=dgit.git diff --git a/tests/lib-gdr b/tests/lib-gdr index d45759d7..c80dead6 100644 --- a/tests/lib-gdr +++ b/tests/lib-gdr @@ -18,7 +18,7 @@ t-gdr-good () { # state should be one of # laundered # stitched - # patches + # pushed git diff --quiet ${beforetag-t.before} -- ':.' ':!debian/patches' @@ -55,8 +55,8 @@ t-gdr-good () { Changelog/Packaging) ;; Changelog/Upstream) ;; Upstream/SAME) ;; - BreakwaterUpstreamMerge/Upstream) ;; - BreakwaterUpstreamMerge/Packaging) ;; + Anchor/Upstream) ;; + Anchor/Packaging) ;; *) fail "etype=$etype ctype=$ctype cetype=$cetype $cid" ;; @@ -78,6 +78,16 @@ t-gdr-good () { enparents=2 git diff --quiet $expect..$cid etype=Upstream + + : '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' @@ -98,7 +108,7 @@ t-gdr-good () { Upstream/SAME) git diff --quiet $expect..$cid -- ':debian' ;; - BreakwaterUpstreamMerge) + Anchor) break ;; esac @@ -106,6 +116,11 @@ t-gdr-good () { local cnparents=`printf "%s" "$parents" | wc -w` test $cnparents = $enparents + local cndparents=` + for f in $parents; do echo $f; done | sort -u | wc -w + ` + test $cndparents = $cnparents + case "$parents" in *"$expect"*) ;; *) fail 'unexpected parent' ;; @@ -202,3 +217,37 @@ t-maintainer-commit-some-changes () { t-git-next-date } + +t-nmu-causes-ff-fail () { + t-dgit fetch + + t-expect-fail E:'Not.*fast-forward' \ + git merge --ff-only dgit/dgit/sid + + t-expect-fail E:'-fdiverged.*refs/remotes/dgit/dgit/sid' \ + t-git-debrebase +} + +t-nmu-reconciled-good () { + local nmutree=$1 + + : 'check that what we have is what is expected' + + git checkout -b compare.nmu origin/master~0 + git checkout $nmutree . + git rm -rf debian/patches + git commit -m 'rm patches nmu' + + git checkout -b compare.maintainer origin/master~0 + git checkout did.maintainer . + git rm -rf --ignore-unmatch debian/patches + git commit --allow-empty -m 'rm patches maintainer' + + git merge compare.nmu + git diff --quiet master + + : 'check that dgit still likes it' + + git checkout master + t-dgit -wgf quilt-fixup +}