chiark / gitweb /
git-debrebase: merge: Always save 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 : ----- 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 test '' = "$(t-git-get-ref-exact $junkref)"
60
61 git for-each-ref refs/debrebase-wreckage | egrep .
62
63 : ===== late failure in apply =====
64
65 git checkout other
66 git reset --hard other-before-new-upstream
67
68 echo other-upstream-confict >>docs/README
69 git commit -m 'other-upstream-conflict' docs/README
70
71 t-git-debrebase quick
72
73 if git for-each-ref refs/debrebase-wreckage | egrep .; then fail wreck; fi
74
75 : ----- make the merge -----
76
77 git checkout master
78 git reset --hard master-before-merge
79
80 t-merge-conflicted-stripping-conflict-markers other docs/README
81
82 : ----- expect failure -----
83
84 t-expect-fail F:'docs/README' \
85 t-git-debrebase
86
87 # xxx want to check wrecknotes appear
88
89 t-ok