# state should be one of
# laundered
# stitched
- # patches
+ # pushed
git diff --quiet ${beforetag-t.before} -- ':.' ':!debian/patches'
Changelog/Packaging) ;;
Changelog/Upstream) ;;
Upstream/SAME) ;;
- BreakwaterUpstreamMerge/Upstream) ;;
- BreakwaterUpstreamMerge/Packaging) ;;
+ Anchor/Upstream) ;;
+ Anchor/Packaging) ;;
*)
fail "etype=$etype ctype=$ctype cetype=$cetype $cid"
;;
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'
Upstream/SAME)
git diff --quiet $expect..$cid -- ':debian'
;;
- BreakwaterUpstreamMerge)
+ Anchor)
break
;;
esac
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' ;;
cd $p
git checkout master
}
+
+t-nmu-commit-an-upstream-change () {
+ echo >>newsrc.c "// more upstream"
+ git add newsrc.c
+ git commit -m 'UPSTREAM NMU'
+}
+
+t-maintainer-commit-some-changes () {
+ t-dch-commit -v$v -m "start $v"
+
+ t-some-changes "maintainer $v"
+ t-git-debrebase
+ t-git-debrebase stitch
+
+ git branch did.maintainer
+
+ 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
+}