X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=tests%2Ftests%2Fgdr-merge-conflicts;h=1f3f09e0d1a6ec3336d0ed694b99be4c1e7f4128;hb=50b6d1fa7bd440dcc7ef9d1803aa8e71e388361f;hp=467dc6ad342d27f4dbd6e453e8e6f9bb987fce05;hpb=d48a0cce536f1151c29f091d096f71aceb190b05;p=dgit.git diff --git a/tests/tests/gdr-merge-conflicts b/tests/tests/gdr-merge-conflicts index 467dc6ad..1f3f09e0 100755 --- a/tests/tests/gdr-merge-conflicts +++ b/tests/tests/gdr-merge-conflicts @@ -3,12 +3,28 @@ set -e autoimport= . tests/lib -t-dependencies NO-DGIT GDR +t-dependencies NO-DGIT GDR quilt t-tstunt-parsechangelog t-setup-import gdr-convert-gbp-noarchive -export GIT_DEBREBASE_EXPERIMENTAL_MERGE=1 +t_gdr_xopts+=' --experimental-merge-resolution' + +wreckage-before () { + junkref=refs/debrebase/wreckage/junk + git update-ref $junkref v2.1 +} + +wreckage-after () { + test '' = "$(t-git-get-ref-exact $junkref)" + git for-each-ref refs/debrebase/wreckage | egrep . +} + +no-wreckage () { + if git for-each-ref refs/debrebase/wreckage | egrep .; then + fail wreckage + fi +} : ----- prepare the baseline ----- @@ -50,20 +66,12 @@ dch -a 'Merge, only conflict was in debian/changelog' t-dch-r-rune dch git commit -a --amend --no-edit -junkref=refs/debrebase-wreckage/junk -git update-ref $junkref v2.1 +wreckage-before t-expect-fail F:'divergent anchors' \ t-git-debrebase -git rev-parse $junkref - -t-expect-fail F:'divergent anchors' \ -t-git-debrebase --save-wreckage - -test '' = "$(t-git-get-ref-exact $junkref)" - -git for-each-ref refs/debrebase-wreckage | egrep . +wreckage-after : ===== late failure in apply ===== @@ -75,18 +83,67 @@ git commit -m 'other-upstream-conflict' docs/README t-git-debrebase quick +no-wreckage + : ----- make the merge ----- git checkout master git reset --hard master-before-merge t-merge-conflicted-stripping-conflict-markers other docs/README +t-git-debrebase stitch : ----- expect failure ----- +wreckage-before + t-expect-fail F:'docs/README' \ t-git-debrebase -# xxx want to check wrecknotes appear +wreckage-after + +: ===== resolve the conflict ===== + +# omg + +quilt_faff_before () { + git checkout -b fix$1 debrebase/wreckage/merged-patchqueue + QUILT_PATCHES=debian/patches quilt push -a +} +quilt_faff_after () { + QUILT_PATCHES=debian/patches quilt refresh + git add debian/patches + git commit -m FIX + git reset --hard + git clean -xdff + t-git-debrebase record-resolved-merge + git checkout master +} + +: ----- badly ----- + +quilt_faff_before 1 +quilt_faff_after + +t-expect-fail E:'upstream files are not the same' \ +t-git-debrebase + +t-git-debrebase scrap +no-wreckage + +: ----- well ----- + +t-expect-fail F:'docs/README' \ +t-git-debrebase +wreckage-after + +quilt_faff_before 2 +git checkout master docs/README +git reset docs/README +quilt_faff_after + +t-git-debrebase + +t-gdr-good laundered t-ok