(set -e; cd $tmp/git; tar xf $troot/git-template.tar)
}
+t-git-merge-base () {
+ git merge-base $1 $2 || test $? = 1
+}
+
t-has-ancestor () {
local now=`git rev-parse HEAD`
local ancestor=`git rev-parse $1^{}`
- local mbase=`git merge-base $ancestor $now`
+ local mbase=`t-git-merge-base $ancestor $now`
if [ x$mbase != x$ancestor ]; then
fail "not ff $ancestor..$now, $mbase != $ancestor"
fi
t-dgit () {
local dgit=${DGIT_TEST-dgit}
+ pwd
: '
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{'
$dgit --dgit=$dgit --dget:-u --dput:--config=$tmp/dput.cf \
'
}
+t-ref-same-exact () {
+ local name="$1"
+ local val=`t-git-get-ref-exact $name`
+ t-ref-same-val "$name" $val
+}
+
t-ref-same () {
local name="$1"
local val=`t-git-get-ref $name`
t-refs-notexist () {
local val
for g in $*; do
- val=`t-git-get-ref $g >$tmp/t.refx`
+ val=`t-git-get-ref $g`
if [ "x$val" != x ]; then
fail "ref $g unexpectedly exists ($val)"
fi
}
t-v-tag () {
- echo refs/tags/debian/${v//\~/_}
+ echo refs/tags/test-dummy/${v//\~/_}
+}
+
+t-check-pushed-master () {
+ local master=`t-git-get-ref refs/heads/master`
+ if [ x$master = x$t_ref_val ]; then return; fi
+ if [ x$master = x ]; then fail "failed to push master"; fi
+ # didn't update master, it must be not FF
+ local mbase=`t-git-merge-base $master $t_ref_val`
+ if [ x$mbase = x$master ]; then fail "failed to ff master"; fi
}
t-pushed-good () {
t-refs-same \
refs/dgit/sid \
`t-v-tag`
+ ${t_check_pushed_master:- : NOT-DRS-NO-CHECK-PUSHED-MASTER}
t-refs-notexist \
refs/dgit/unstable
)
t-tstunt dpkg-parsechangelog Dpkg/Changelog/Parse.pm
}
-t-prep-mergechangelogs () {
- local b=merge.dpkg-mergechangelogs
- git config $b.name 'debian/changelog merge driver'
- git config $b.driver 'dpkg-mergechangelogs -m %O %A %B %A'
- mkdir -p .git/info
- echo >>.git/info/attributes \
- 'debian/changelog merge=dpkg-mergechangelogs'
-}
-
t-ref-dsc-dgit () {
local dsc=${p}_${v}.dsc
local val=`t-822-field $tmp/incoming/$dsc Dgit`
t-git-config dgit-distro.test-dummy.git-create true
cp $troot/gnupg/{dd.gpg,dm.gpg,dm.txt} $tmp/.
cp $troot/suites $tmp/.
+ cp $troot/suites $tmp/suites-master
+
+ export t_check_pushed_master=t-check-pushed-master
drs_dispatch=$tmp/distro=test-dummy
mkdir $drs_dispatch
fi
ln -sf $tmp/git $drs_dispatch/repos
- ln -sf $tmp/suites $tmp/dm.txt $drs_dispatch/
+ ln -sf $tmp/suites $tmp/suites-master $tmp/dm.txt $drs_dispatch/
mkdir -p $drs_dispatch/keyrings
ln -sf $tmp/dd.gpg $drs_dispatch/keyrings/debian-keyring.gpg
ln -sf $tmp/dm.gpg $drs_dispatch/keyrings/debian-maintainers.gpg