From 404b824d7a46eee9fe76398fda6a44a7e9cf3681 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 11 Aug 2018 09:58:05 +0100 Subject: git-debrebase: test suite: New gdr-merge test This still has a lot of xxx's, but as it is right now it passes, despite all the bugs. This seems like a reasonable baseline for more work. Signed-off-by: Ian Jackson --- tests/tests/gdr-merge | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100755 tests/tests/gdr-merge (limited to 'tests/tests/gdr-merge') diff --git a/tests/tests/gdr-merge b/tests/tests/gdr-merge new file mode 100755 index 0000000..7a6ffdb --- /dev/null +++ b/tests/tests/gdr-merge @@ -0,0 +1,70 @@ +#!/bin/bash +set -e +autoimport= +. tests/lib + +t-dependencies NO-DGIT GDR + +t-tstunt-parsechangelog +t-setup-import gdr-convert-gbp-noarchive + +: 'set up so t-git-debrebase runs gdr via git' + +case "$DGIT_GITDEBREBASE_TEST" in +''|git-debrebase) ;; +*) + t-tstunt + st=$tmp/tstunt/git-debrebase + export DGIT_GITDEBREBASE_TEST_REAL="$DGIT_GITDEBREBASE_TEST" + cat <<'END' >$st +#!/bin/sh +set -x +exec "$DGIT_GITDEBREBASE_TEST_REAL" "$@" +END + chmod +x $st + ;; +esac + +DGIT_GITDEBREBASE_TEST='git debrebase' + +: 'do a simple test' + +cd $p + +t-gdr-prep-new-upstream 2.1 +git tag v2.1 upstream + +t-some-changes before +t-git-debrebase quick + +git checkout -b other +t-some-changes other '' -other + +git checkout master +t-some-changes us-1 '' -us +t-git-debrebase new-upstream 2.1 +t-some-changes us-2 '' -us +t-git-debrebase quick + +git merge other + +t-some-changes after +# xxx ^ commenting out this line produces an internal error + +t-expect-fail E:'general two-parent merge' \ +t-git-debrebase + +export GIT_DEBREBASE_EXPERIMENTAL_MERGE=1 + +t-git-debrebase + +# xxx want to check that we DTRT if we start out unstitched - +# xxx should consider our ffq-prev as a parent +# xxx or should we ? it's not a parent of the merge is it ? +# xxx => user should prefer to make merges when stitched ? +# xxx think about this later + +# t-gdr-good laundered +# xxx ^ this does not work + +t-ok -- cgit v1.2.3 From 0323a891b385296fd346dd1ea794c5c2ee8229a0 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 11 Aug 2018 11:32:51 +0100 Subject: git-debrebase: merge: test suite: Test both with and without `after' Signed-off-by: Ian Jackson --- tests/tests/gdr-merge | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'tests/tests/gdr-merge') diff --git a/tests/tests/gdr-merge b/tests/tests/gdr-merge index 7a6ffdb..25b2ee0 100755 --- a/tests/tests/gdr-merge +++ b/tests/tests/gdr-merge @@ -48,14 +48,15 @@ t-git-debrebase quick git merge other -t-some-changes after -# xxx ^ commenting out this line produces an internal error - t-expect-fail E:'general two-parent merge' \ t-git-debrebase export GIT_DEBREBASE_EXPERIMENTAL_MERGE=1 +t-git-debrebase +t-git-debrebase scrap + +t-some-changes after t-git-debrebase # xxx want to check that we DTRT if we start out unstitched - -- cgit v1.2.3 From e8ab02477159b5bd91a3566dc28367ed4a910b3a Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 11 Aug 2018 11:43:40 +0100 Subject: git-debrebase: merge: Comment about laundry of merge of unstitched I have concluded that this is not a problem avoidable by git-debrebase, and that any trouble will be tolerable (at least, not data loss). The user should try to avoid doing this. Signed-off-by: Ian Jackson --- tests/tests/gdr-merge | 6 ------ 1 file changed, 6 deletions(-) (limited to 'tests/tests/gdr-merge') diff --git a/tests/tests/gdr-merge b/tests/tests/gdr-merge index 25b2ee0..baffedf 100755 --- a/tests/tests/gdr-merge +++ b/tests/tests/gdr-merge @@ -59,12 +59,6 @@ t-git-debrebase scrap t-some-changes after t-git-debrebase -# xxx want to check that we DTRT if we start out unstitched - -# xxx should consider our ffq-prev as a parent -# xxx or should we ? it's not a parent of the merge is it ? -# xxx => user should prefer to make merges when stitched ? -# xxx think about this later - # t-gdr-good laundered # xxx ^ this does not work -- cgit v1.2.3 From 965fdfed6e03d38b273baf1fa282a3d2ef828484 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 11 Aug 2018 13:32:28 +0100 Subject: git-debrebase: merge: test suite: Do a bit more testing We can now call t-gdr-good laundered, because it works. Signed-off-by: Ian Jackson --- tests/tests/gdr-merge | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'tests/tests/gdr-merge') diff --git a/tests/tests/gdr-merge b/tests/tests/gdr-merge index baffedf..666672f 100755 --- a/tests/tests/gdr-merge +++ b/tests/tests/gdr-merge @@ -54,12 +54,13 @@ t-git-debrebase export GIT_DEBREBASE_EXPERIMENTAL_MERGE=1 t-git-debrebase +t-gdr-good laundered +t-git-debrebase +t-gdr-good laundered t-git-debrebase scrap t-some-changes after t-git-debrebase - -# t-gdr-good laundered -# xxx ^ this does not work +t-gdr-good laundered t-ok -- cgit v1.2.3 From 75da546e42b202e22aafb7241b9819e51b1d6ea7 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 11 Aug 2018 13:48:36 +0100 Subject: git-debrebase: merge: test suite: test avoiding re-merge of debian/ Signed-off-by: Ian Jackson --- tests/tests/gdr-merge | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'tests/tests/gdr-merge') diff --git a/tests/tests/gdr-merge b/tests/tests/gdr-merge index 666672f..a213385 100755 --- a/tests/tests/gdr-merge +++ b/tests/tests/gdr-merge @@ -40,14 +40,25 @@ t-git-debrebase quick git checkout -b other t-some-changes other '' -other +echo 'other-conflict' >>debian/zorkmid +git commit -m 'other-conflict' debian/zorkmid + git checkout master t-some-changes us-1 '' -us t-git-debrebase new-upstream 2.1 t-some-changes us-2 '' -us +echo 'us-conflict' >>debian/zorkmid +git commit -m 'us-conflict' debian/zorkmid t-git-debrebase quick +t-expect-fail E:'Merge conflict in debian/zorkmid' \ git merge other +perl -i~ -ne 'print unless m{^(?:\<\<\<|\>\>\>|===)}' debian/zorkmid + +git add debian/zorkmid +git commit --no-edit + t-expect-fail E:'general two-parent merge' \ t-git-debrebase -- cgit v1.2.3 From a79b9f2941ebacde9cdc067d042cfea1a68a6844 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 11 Aug 2018 15:34:51 +0100 Subject: git-debrebase: merge: test suite: Use t-ref-same-start This is better than t-gdr-good laundered because (i) it is faster (ii) it checks that the second laundry was a no-op (and did not rewrite unnecessarily). Signed-off-by: Ian Jackson --- tests/tests/gdr-merge | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'tests/tests/gdr-merge') diff --git a/tests/tests/gdr-merge b/tests/tests/gdr-merge index a213385..07ded5a 100755 --- a/tests/tests/gdr-merge +++ b/tests/tests/gdr-merge @@ -66,8 +66,12 @@ export GIT_DEBREBASE_EXPERIMENTAL_MERGE=1 t-git-debrebase t-gdr-good laundered + +t-refs-same-start +t-ref-head t-git-debrebase -t-gdr-good laundered +t-ref-head + t-git-debrebase scrap t-some-changes after -- cgit v1.2.3 From 79c61ce4926d8bb167fcdc5dd494c667ed4e9fbd Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 11 Aug 2018 16:46:04 +0100 Subject: git-debrebase: merge: test: Drop stuff cloned from gdr-viagit We don't much are about this here. Signed-off-by: Ian Jackson --- tests/tests/gdr-merge | 19 ------------------- 1 file changed, 19 deletions(-) (limited to 'tests/tests/gdr-merge') diff --git a/tests/tests/gdr-merge b/tests/tests/gdr-merge index 07ded5a..b1a215a 100755 --- a/tests/tests/gdr-merge +++ b/tests/tests/gdr-merge @@ -8,25 +8,6 @@ t-dependencies NO-DGIT GDR t-tstunt-parsechangelog t-setup-import gdr-convert-gbp-noarchive -: 'set up so t-git-debrebase runs gdr via git' - -case "$DGIT_GITDEBREBASE_TEST" in -''|git-debrebase) ;; -*) - t-tstunt - st=$tmp/tstunt/git-debrebase - export DGIT_GITDEBREBASE_TEST_REAL="$DGIT_GITDEBREBASE_TEST" - cat <<'END' >$st -#!/bin/sh -set -x -exec "$DGIT_GITDEBREBASE_TEST_REAL" "$@" -END - chmod +x $st - ;; -esac - -DGIT_GITDEBREBASE_TEST='git debrebase' - : 'do a simple test' cd $p -- cgit v1.2.3 From 9fe91f98a08e948bf3e282cd17f7c2637669a216 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 11 Aug 2018 16:51:54 +0100 Subject: git-debrebase: merge: test: Introduce t-merge-conflicted-* NFC Signed-off-by: Ian Jackson --- tests/tests/gdr-merge | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) (limited to 'tests/tests/gdr-merge') diff --git a/tests/tests/gdr-merge b/tests/tests/gdr-merge index b1a215a..6014691 100755 --- a/tests/tests/gdr-merge +++ b/tests/tests/gdr-merge @@ -32,13 +32,7 @@ echo 'us-conflict' >>debian/zorkmid git commit -m 'us-conflict' debian/zorkmid t-git-debrebase quick -t-expect-fail E:'Merge conflict in debian/zorkmid' \ -git merge other - -perl -i~ -ne 'print unless m{^(?:\<\<\<|\>\>\>|===)}' debian/zorkmid - -git add debian/zorkmid -git commit --no-edit +t-merge-conflicted-stripping-conflict-markers other debian/zorkmid t-expect-fail E:'general two-parent merge' \ t-git-debrebase -- cgit v1.2.3 From fad5cfbb7f5309a5f976990883d875e5d38bc000 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 11 Aug 2018 17:01:22 +0100 Subject: git-debrebase: merge: gdr-merge test: sort out section comments Signed-off-by: Ian Jackson --- tests/tests/gdr-merge | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'tests/tests/gdr-merge') diff --git a/tests/tests/gdr-merge b/tests/tests/gdr-merge index 6014691..14a8237 100755 --- a/tests/tests/gdr-merge +++ b/tests/tests/gdr-merge @@ -8,8 +8,6 @@ t-dependencies NO-DGIT GDR t-tstunt-parsechangelog t-setup-import gdr-convert-gbp-noarchive -: 'do a simple test' - cd $p t-gdr-prep-new-upstream 2.1 @@ -18,12 +16,16 @@ git tag v2.1 upstream t-some-changes before t-git-debrebase quick +: ----- prepare LH branch ----- + git checkout -b other t-some-changes other '' -other echo 'other-conflict' >>debian/zorkmid git commit -m 'other-conflict' debian/zorkmid +: ----- prepare RH branch ----- + git checkout master t-some-changes us-1 '' -us t-git-debrebase new-upstream 2.1 @@ -32,6 +34,8 @@ echo 'us-conflict' >>debian/zorkmid git commit -m 'us-conflict' debian/zorkmid t-git-debrebase quick +: ----- introduce a vanilla merge ----- + t-merge-conflicted-stripping-conflict-markers other debian/zorkmid t-expect-fail E:'general two-parent merge' \ @@ -39,6 +43,8 @@ t-git-debrebase export GIT_DEBREBASE_EXPERIMENTAL_MERGE=1 +: ----- expect to be able to merge ----- + t-git-debrebase t-gdr-good laundered -- cgit v1.2.3 From 7bc6dfb448ed6279adb7a3eafa3dcc86a2c111b5 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 19 Aug 2018 20:44:29 +0100 Subject: git-debrebase: Merges: Enable with command-line option instead of env var Signed-off-by: Ian Jackson --- tests/tests/gdr-merge | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests/tests/gdr-merge') diff --git a/tests/tests/gdr-merge b/tests/tests/gdr-merge index 14a8237..d2df2b8 100755 --- a/tests/tests/gdr-merge +++ b/tests/tests/gdr-merge @@ -41,7 +41,7 @@ t-merge-conflicted-stripping-conflict-markers other debian/zorkmid t-expect-fail E:'general two-parent merge' \ t-git-debrebase -export GIT_DEBREBASE_EXPERIMENTAL_MERGE=1 +t_gdr_xopts+=' --experimental-merge-resolution' : ----- expect to be able to merge ----- -- cgit v1.2.3 From 1f8626d4eaf79e8f26f0e27ff076fd5469a7cbe4 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 25 Aug 2018 12:32:54 +0100 Subject: test suite: Test dgit branch_is_gdr walker on a merge resolution Signed-off-by: Ian Jackson --- tests/tests/gdr-merge | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'tests/tests/gdr-merge') diff --git a/tests/tests/gdr-merge b/tests/tests/gdr-merge index d2df2b8..78b79e9 100755 --- a/tests/tests/gdr-merge +++ b/tests/tests/gdr-merge @@ -3,7 +3,7 @@ set -e autoimport= . tests/lib -t-dependencies NO-DGIT GDR +t-dependencies GDR t-tstunt-parsechangelog t-setup-import gdr-convert-gbp-noarchive @@ -59,4 +59,7 @@ t-some-changes after t-git-debrebase t-gdr-good laundered +t-dgit quilt-fixup +t-gdr-made-patches + t-ok -- cgit v1.2.3