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