chiark / gitweb /
git-debrebase: merge: test conflict: Break out no-wreckage
[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 wreckage-before () {
14         junkref=refs/debrebase/wreckage/junk
15         git update-ref $junkref v2.1
16 }
17
18 wreckage-after () {
19         test '' = "$(t-git-get-ref-exact $junkref)"
20         git for-each-ref refs/debrebase/wreckage | egrep .
21 }
22
23 no-wreckage () {
24         if git for-each-ref refs/debrebase/wreckage | egrep .; then
25                 fail wreckage
26         fi
27 }
28
29 : ----- prepare the baseline -----
30
31 cd $p
32
33 t-gdr-prep-new-upstream 2.1
34 git tag v2.1 upstream
35
36 t-some-changes before
37 t-git-debrebase quick
38
39 : ===== early failure in walk =====
40
41 : ----- prepare other -----
42
43 git checkout -b other
44 t-some-changes other '' -other
45
46 git branch other-before-new-upstream
47
48 t-git-debrebase new-upstream 2.1
49 t-git-next-date
50
51 : ----- prepare master -----
52
53 git checkout master
54 t-git-debrebase new-upstream 2.1
55 t-git-next-date
56
57 git branch master-before-merge
58
59 : ----- make the merge -----
60
61 git merge -s ours other
62
63 # we have to do a little dance to make this not a pseudomerge
64 t-git-next-date
65 dch -a 'Merge, only conflict was in debian/changelog'
66 t-dch-r-rune dch
67 git commit -a --amend --no-edit
68
69 wreckage-before
70
71 t-expect-fail F:'divergent anchors' \
72 t-git-debrebase
73
74 wreckage-after
75
76 : ===== late failure in apply =====
77
78 git checkout other
79 git reset --hard other-before-new-upstream
80
81 echo other-upstream-confict >>docs/README
82 git commit -m 'other-upstream-conflict' docs/README
83
84 t-git-debrebase quick
85
86 no-wreckage
87
88 : ----- make the merge -----
89
90 git checkout master
91 git reset --hard master-before-merge
92
93 t-merge-conflicted-stripping-conflict-markers other docs/README
94
95 : ----- expect failure -----
96
97 wreckage-before
98
99 t-expect-fail F:'docs/README' \
100 t-git-debrebase
101
102 wreckage-after
103
104 : ----- resolve the conflict -----
105
106 # omg
107 git checkout debrebase/wreckage/merged-patchqueue
108 QUILT_PATCHES=debian/patches quilt push -a
109 QUILT_PATCHES=debian/patches quilt refresh
110 git add debian/patches
111 git commit -m FIX
112 git reset --hard
113 git clean -xdff
114
115 t-expect-fail F:todo \
116 t-git-debrebase record-resolved-merge
117
118 git checkout master
119
120 #t-git-debrebase
121 #t-gdr-good laundered
122
123 t-ok