# : ${GDR_TEST_DEBUG=-D} export GDR_TEST_DEBUG t-git-debrebase () { local gdr=${DGIT_GITDEBREBASE_TEST-git-debrebase} : ' {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{' $gdr $GDR_TEST_OPTS $GDR_TEST_DEBUG $t_gdr_xopts "$@" : '}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} ' } t-gdr-branch-structure () { local state=$1 # state should be one of # laundered # stitched # patches local etype netype case $state in laundered) etype=Upstream ;; stitched) etype=Pseudomerge ;; pushed) etype=AddPatches; netype=Pseudomerge ;; esac t-git-debrebase analyse >../anal.check expect=`git rev-parse HEAD` exec <../anal.check local cid ctype info nparents 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 parents="`git log -n1 --pretty=format:%P $cid`" expect="$parents" enparents=1 : "$ctype/$cetype" "$parents" case "$ctype/$cetype" in Pseudomerge/SAME) expect=${info#Contributor=} expect=${expect%% *} enparents=2 git diff --quiet $expect..$cid etype=Upstream ;; Packaging/SAME|\ Packaging/Upstream) git diff --quiet $expect..$cid -- ':.' ':!debian' git diff --quiet $expect..$cid -- ':debian/patches' etype=Packaging ;; AddPatches/SAME) git diff --quiet $expect..$cid -- \ ':.' ':!debian/patches' etype=$netype netype=Upstream ;; Changelog/Packaging|\ Changelog/Upstream) git diff --quiet $expect..$cid -- \ ':.' ':!debian/changelog' etype=Packaging ;; Upstream/SAME) git diff --quiet $expect..$cid -- ':debian' ;; BreakwaterUpstreamMerge/Upstream| \ BreakwaterUpstreamMerge/Packaging) break ;; *) fail "etype=$etype ctype=$ctype cetype=$cetype $cid" ;; esac local cnparents=`printf "%s" "$parents" | wc -w` test $cnparents = $enparents case "$parents" in *"$expect"*) ;; *) fail 'unexpected parent' ;; esac done }