chiark / gitweb /
467dc6ad342d27f4dbd6e453e8e6f9bb987fce05
[dgit.git] / tests / tests / gdr-merge-conflicts
1 #!/bin/bash
2 set -e
3 autoimport=
4 . tests/lib
5
6 t-dependencies NO-DGIT GDR
7
8 t-tstunt-parsechangelog
9 t-setup-import gdr-convert-gbp-noarchive
10
11 export GIT_DEBREBASE_EXPERIMENTAL_MERGE=1
12
13 : ----- prepare the baseline -----
14
15 cd $p
16
17 t-gdr-prep-new-upstream 2.1
18 git tag v2.1 upstream
19
20 t-some-changes before
21 t-git-debrebase quick
22
23 : ===== early failure in walk =====
24
25 : ----- prepare other -----
26
27 git checkout -b other
28 t-some-changes other '' -other
29
30 git branch other-before-new-upstream
31
32 t-git-debrebase new-upstream 2.1
33 t-git-next-date
34
35 : ----- prepare master -----
36
37 git checkout master
38 t-git-debrebase new-upstream 2.1
39 t-git-next-date
40
41 git branch master-before-merge
42
43 : ----- make the merge -----
44
45 git merge -s ours other
46
47 # we have to do a little dance to make this not a pseudomerge
48 t-git-next-date
49 dch -a 'Merge, only conflict was in debian/changelog'
50 t-dch-r-rune dch
51 git commit -a --amend --no-edit
52
53 junkref=refs/debrebase-wreckage/junk
54 git update-ref $junkref v2.1
55
56 t-expect-fail F:'divergent anchors' \
57 t-git-debrebase
58
59 git rev-parse $junkref
60
61 t-expect-fail F:'divergent anchors' \
62 t-git-debrebase --save-wreckage
63
64 test '' = "$(t-git-get-ref-exact $junkref)"
65
66 git for-each-ref refs/debrebase-wreckage | egrep .
67
68 : ===== late failure in apply =====
69
70 git checkout other
71 git reset --hard other-before-new-upstream
72
73 echo other-upstream-confict >>docs/README
74 git commit -m 'other-upstream-conflict' docs/README
75
76 t-git-debrebase quick
77
78 : ----- make the merge -----
79
80 git checkout master
81 git reset --hard master-before-merge
82
83 t-merge-conflicted-stripping-conflict-markers other docs/README
84
85 : ----- expect failure -----
86
87 t-expect-fail F:'docs/README' \
88 t-git-debrebase
89
90 # xxx want to check wrecknotes appear
91
92 t-ok