diff options
Diffstat (limited to 'tests/tests/badcommit-rewrite')
-rwxr-xr-x | tests/tests/badcommit-rewrite | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/tests/tests/badcommit-rewrite b/tests/tests/badcommit-rewrite new file mode 100755 index 0000000..b7fc701 --- /dev/null +++ b/tests/tests/badcommit-rewrite @@ -0,0 +1,47 @@ +#!/bin/bash +set -e +. tests/lib + +t-setup-import examplegit +t-tstunt-parsechangelog + +cd example + +suite=stable + +t-commit 'No changes, just send to stable' '' stable + +t-make-badcommit +git reset --hard $badcommit + +t-dgit -wgf build +t-dgit push --overwrite=1.2 stable +t-archive-process-incoming stable + +rstable=refs/remotes/dgit/dgit/stable + +t-dgit fetch stable +t-has-parent-or-is $rstable $badcommit + +fixup=${DGIT_BADCOMMIT_FIXUP-dgit-badcommit-fixup} + +cd $tmp/git/$p.git +$fixup --real + +cd $tmp/$p +git symbolic-ref HEAD >../sym.before +git rev-parse HEAD >../ref.before + +$fixup --real + +git symbolic-ref HEAD >../sym.after +git rev-parse HEAD >../ref.after +diff ../sym.before ../sym.after +set +e; diff ../ref.before ../ref.after; rc=$?; set -e; test $rc = 1 + +t-dgit fetch stable + +t-expect-fail "child $rstable lacks parent $badcommit" \ +t-has-parent-or-is $rstable $badcommit + +t-ok |