chiark / gitweb /
test suite: badcommit-rewrite: Check HEAD manipulation is right
[dgit.git] / tests / tests / badcommit-rewrite
1 #!/bin/bash
2 set -e
3 . tests/lib
4
5 t-setup-import examplegit
6
7 cd example
8
9 suite=stable
10
11 t-commit 'No changes, just send to stable' '' stable
12
13 t-make-badcommit
14 git reset --hard $badcommit
15
16 t-dgit -wgf build
17 t-dgit push --overwrite=1.2 stable
18 t-archive-process-incoming stable
19
20 rstable=refs/remotes/dgit/dgit/stable
21
22 t-dgit fetch stable
23 t-has-parent-or-is $rstable $badcommit
24
25 cd $tmp/git/$p.git
26 ${DGIT_BADCOMMIT_FIXUP} --real
27
28 cd $tmp/$p
29 git symbolic-ref HEAD >../sym.before
30 git rev-parse HEAD >../ref.before
31
32 ${DGIT_BADCOMMIT_FIXUP} --real
33
34 git symbolic-ref HEAD >../sym.after
35 git rev-parse HEAD >../ref.after
36 diff ../sym.before ../sym.after
37 set +e; diff ../ref.before ../ref.after; rc=$?; set -e; test $rc = 1
38
39 t-dgit fetch stable
40
41 t-expect-fail "child $rstable lacks parent $badcommit" \
42 t-has-parent-or-is $rstable $badcommit
43
44 t-ok