chiark / gitweb /
test suite: Test ill-advised repeat dgit push after git push fails
[dgit.git] / tests / tests / gdr-newupstream
1 #!/bin/bash
2 set -e
3 . tests/lib
4
5 t-dependencies NO-DGIT GDR
6
7 t-setup-import gdr-convert-gbp-noarchive
8
9 cd $p
10
11 : 'upstream hat'
12
13 new-upstream () {
14         uv=$1
15         t-git-next-date
16         git checkout make-upstream
17         git reset --hard upstream
18         t-make-new-upstream-tarball $uv
19         git push . make-upstream:upstream
20         git checkout master
21         t-git-next-date
22 }
23
24 new-upstream 2.1
25
26 : 'maintainer hat'
27
28 git branch startpoint
29 v=2.1-1
30
31 git checkout master
32
33 t-expect-fail F:'Could not determine appropriate upstream commitish' \
34 t-git-debrebase new-upstream $v
35
36 git tag v2.1 upstream
37
38 t-git-debrebase new-upstream $v
39 t-gdr-good laundered
40 git reflog | egrep 'debrebase new-upstream.*checkout'
41
42 t-git-debrebase stitch
43 t-gdr-good stitched
44
45 git branch ordinary
46
47 : 'with --anchor'
48
49 git reset --hard startpoint
50
51 t-git-debrebase analyse >../anal.anch
52 anchor=$(perl <../anal.anch -ne '
53         next unless m/^(\w+) Anchor\s/;
54         print $1,"\n";
55         exit;
56 ')
57
58 GIT_REFLOG_ACTION='STUNT-RLA' \
59 t-git-debrebase --anchor=$anchor -fanchor-treated new-upstream $v upstream
60 t-gdr-good laundered
61 git reflog | egrep 'STUNT-RLA: debrebase new-upstream'
62 git reflog | egrep 'STUNT-RLA: debrebase: launder for new upstream'
63
64 t-git-debrebase stitch
65 t-gdr-good stitched
66
67 git diff --quiet ordinary
68
69 t-ok