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