From: Martin von Zweigbergk <martinvonz@gmail.com>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>,
Johannes Sixt <j.sixt@viscovery.net>,
Chris Webb <chris@arachsys.com>,
Felipe Contreras <felipe.contreras@gmail.com>,
Martin von Zweigbergk <martinvonz@gmail.com>
Subject: [PATCH v3 2/7] add tests for rebasing with patch-equivalence present
Date: Thu, 30 May 2013 23:49:42 -0700 [thread overview]
Message-ID: <1369982987-18954-3-git-send-email-martinvonz@gmail.com> (raw)
In-Reply-To: <1369982987-18954-1-git-send-email-martinvonz@gmail.com>
---
t/lib-rebase.sh | 17 ++++++++
t/t3420-rebase-topology-linear.sh | 85 +++++++++++++++++++++++++++++++++++++++
2 files changed, 102 insertions(+)
diff --git a/t/lib-rebase.sh b/t/lib-rebase.sh
index 62b3887..16eeb1c 100644
--- a/t/lib-rebase.sh
+++ b/t/lib-rebase.sh
@@ -80,3 +80,20 @@ reset_rebase () {
git reset --hard &&
git clean -f
}
+
+cherry_pick () {
+ git cherry-pick -n "$2" &&
+ git commit -m "$1" &&
+ git tag "$1"
+}
+
+revert () {
+ git revert -n "$2" &&
+ git commit -m "$1" &&
+ git tag "$1"
+}
+
+make_empty () {
+ git commit --allow-empty -m "$1" &&
+ git tag "$1"
+}
diff --git a/t/t3420-rebase-topology-linear.sh b/t/t3420-rebase-topology-linear.sh
index c4b32db..75cc476 100755
--- a/t/t3420-rebase-topology-linear.sh
+++ b/t/t3420-rebase-topology-linear.sh
@@ -75,4 +75,89 @@ test_run_rebase success -m
test_run_rebase success -i
test_run_rebase success -p
+# f
+# /
+# a---b---c---g---h
+# \
+# d---G---i
+#
+# uppercase = cherry-picked
+# h = reverted g
+#
+# Reverted patches are there for tests to be able to check if a commit
+# that introduced the same change as another commit is
+# dropped. Without reverted commits, we could get false positives
+# because applying the patch succeeds, but simply results in no
+# changes.
+test_expect_success 'setup of linear history for range selection tests' '
+ git checkout c &&
+ test_commit g &&
+ revert h g &&
+ git checkout d &&
+ cherry_pick G g &&
+ test_commit i &&
+ git checkout b &&
+ test_commit f
+'
+
+test_run_rebase () {
+ result=$1
+ shift
+ test_expect_$result "rebase $* drops patches in upstream" "
+ reset_rebase &&
+ git rebase $* h i &&
+ test_cmp_rev h HEAD~2 &&
+ test_linear_range 'd i' h..
+ "
+}
+test_run_rebase success ''
+test_run_rebase failure -m
+test_run_rebase success -i
+test_run_rebase success -p
+
+test_run_rebase () {
+ result=$1
+ shift
+ test_expect_$result "rebase $* can drop last patch if in upstream" "
+ reset_rebase &&
+ git rebase $* h G &&
+ test_cmp_rev h HEAD^ &&
+ test_linear_range 'd' h..
+ "
+}
+test_run_rebase success ''
+test_run_rebase failure -m
+test_run_rebase success -i
+test_run_rebase success -p
+
+test_run_rebase () {
+ result=$1
+ shift
+ test_expect_$result "rebase $* --onto drops patches in upstream" "
+ reset_rebase &&
+ git rebase $* --onto f h i &&
+ test_cmp_rev f HEAD~2 &&
+ test_linear_range 'd i' f..
+ "
+}
+test_run_rebase success ''
+test_run_rebase failure -m
+test_run_rebase success -i
+test_run_rebase success -p
+
+test_run_rebase () {
+ result=$1
+ shift
+ test_expect_$result "rebase $* --onto does not drop patches in onto" "
+ reset_rebase &&
+ git rebase $* --onto h f i &&
+ test_cmp_rev h HEAD~3 &&
+ test_linear_range 'd G i' h..
+ "
+}
+test_run_rebase success ''
+test_run_rebase success -m
+test_run_rebase success -i
+test_run_rebase success -p
+
test_done
--
1.8.2.674.gd17d3d2
next prev parent reply other threads:[~2013-05-31 6:50 UTC|newest]
Thread overview: 75+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-18 6:31 [RFC PATCH] add t3420-rebase-topology Martin von Zweigbergk
2012-09-18 7:51 ` Junio C Hamano
2012-09-21 17:06 ` Martin von Zweigbergk
2012-09-18 7:53 ` Johannes Sixt
2012-09-26 17:07 ` Martin von Zweigbergk
2012-09-27 12:20 ` Chris Webb
2012-09-28 18:03 ` Martin von Zweigbergk
2012-09-29 8:08 ` Chris Webb
2013-05-29 6:39 ` [PATCH v2 0/7] Rebase topology test Martin von Zweigbergk
2013-05-29 6:39 ` [PATCH v2 1/7] add simple tests of consistency across rebase types Martin von Zweigbergk
2013-06-03 17:16 ` Martin von Zweigbergk
2013-06-03 18:05 ` Junio C Hamano
2013-06-03 18:12 ` Martin von Zweigbergk
2013-05-29 6:39 ` [PATCH v2 2/7] add tests for rebasing with patch-equivalence present Martin von Zweigbergk
2013-05-29 7:09 ` Johannes Sixt
2013-05-30 5:30 ` Martin von Zweigbergk
2013-05-30 5:41 ` Felipe Contreras
2013-05-30 6:14 ` Martin von Zweigbergk
2013-05-30 6:40 ` Felipe Contreras
2013-05-30 6:46 ` Martin von Zweigbergk
2013-05-30 12:54 ` Johannes Sixt
2013-05-30 15:01 ` Martin von Zweigbergk
2013-05-29 6:39 ` [PATCH v2 3/7] add tests for rebasing of empty commits Martin von Zweigbergk
2013-05-29 6:39 ` [PATCH v2 4/7] add tests for rebasing root Martin von Zweigbergk
2013-05-29 7:31 ` Johannes Sixt
2013-05-30 5:51 ` Martin von Zweigbergk
2013-05-29 6:39 ` [PATCH v2 5/7] add tests for rebasing merged history Martin von Zweigbergk
2013-05-29 7:57 ` Johannes Sixt
2013-05-31 5:42 ` Martin von Zweigbergk
2013-05-29 10:33 ` Johannes Sixt
2013-05-29 6:39 ` [PATCH v2 6/7] t3406: modernize style Martin von Zweigbergk
2013-05-29 6:39 ` [PATCH v2 7/7] tests: move test for rebase messages from t3400 to t3406 Martin von Zweigbergk
2013-05-29 7:10 ` [PATCH v2 0/7] Rebase topology test Felipe Contreras
2013-05-29 12:50 ` Ramkumar Ramachandra
2013-05-29 13:54 ` Felipe Contreras
2013-05-31 6:49 ` [PATCH v3 " Martin von Zweigbergk
2013-05-31 6:49 ` [PATCH v3 1/7] add simple tests of consistency across rebase types Martin von Zweigbergk
2013-05-31 6:49 ` Martin von Zweigbergk [this message]
2013-05-31 6:49 ` [PATCH v3 3/7] add tests for rebasing of empty commits Martin von Zweigbergk
2013-05-31 6:49 ` [PATCH v3 4/7] add tests for rebasing root Martin von Zweigbergk
2013-05-31 6:49 ` [PATCH v3 5/7] add tests for rebasing merged history Martin von Zweigbergk
2013-05-31 12:19 ` Johannes Sixt
2013-06-01 21:36 ` [PATCH v4 " Martin von Zweigbergk
2013-05-31 6:49 ` [PATCH v3 6/7] t3406: modernize style Martin von Zweigbergk
2013-05-31 6:49 ` [PATCH v3 7/7] tests: move test for rebase messages from t3400 to t3406 Martin von Zweigbergk
2013-06-03 20:42 ` [PATCH v5 0/7] Rebase topology test Martin von Zweigbergk
2013-06-03 20:42 ` [PATCH v5 1/7] add simple tests of consistency across rebase types Martin von Zweigbergk
2013-06-03 22:28 ` Junio C Hamano
2013-06-04 5:14 ` Martin von Zweigbergk
2013-06-04 5:49 ` Junio C Hamano
2013-06-04 6:15 ` Johannes Sixt
2013-06-05 4:31 ` Martin von Zweigbergk
2013-06-03 20:42 ` [PATCH v5 2/7] add tests for rebasing with patch-equivalence present Martin von Zweigbergk
2013-06-03 20:42 ` [PATCH v5 3/7] add tests for rebasing of empty commits Martin von Zweigbergk
2013-06-03 20:42 ` [PATCH v5 4/7] add tests for rebasing root Martin von Zweigbergk
2013-06-03 20:42 ` [PATCH v5 5/7] add tests for rebasing merged history Martin von Zweigbergk
2013-06-04 17:18 ` Junio C Hamano
2013-06-05 5:44 ` Martin von Zweigbergk
2013-06-05 6:12 ` Johannes Sixt
2013-06-03 20:42 ` [PATCH v5 6/7] t3406: modernize style Martin von Zweigbergk
2013-06-03 20:42 ` [PATCH v5 7/7] tests: move test for rebase messages from t3400 to t3406 Martin von Zweigbergk
2013-06-07 6:11 ` [PATCH v6 0/8] Rebase topology test Martin von Zweigbergk
2013-06-07 6:11 ` [PATCH v6 1/7] add simple tests of consistency across rebase types Martin von Zweigbergk
2013-06-07 6:11 ` [PATCH v6 2/7] add tests for rebasing with patch-equivalence present Martin von Zweigbergk
2013-06-07 6:11 ` [PATCH v6 3/7] add tests for rebasing of empty commits Martin von Zweigbergk
2013-06-07 6:11 ` [PATCH v6 4/7] add tests for rebasing root Martin von Zweigbergk
2013-06-07 6:11 ` [PATCH v6 5/7] add tests for rebasing merged history Martin von Zweigbergk
2013-06-07 6:11 ` [PATCH v6 6/7] t3406: modernize style Martin von Zweigbergk
2013-06-07 6:11 ` [PATCH v6 7/7] tests: move test for rebase messages from t3400 to t3406 Martin von Zweigbergk
2013-06-07 16:43 ` [PATCH v6 0/8] Rebase topology test Junio C Hamano
2013-06-07 19:37 ` Johannes Sixt
2013-06-18 7:28 ` [PATCH mz/rebase-tests] rebase topology tests: fix commit names on case-insensitive file systems Johannes Sixt
2013-06-18 15:45 ` Junio C Hamano
2013-06-18 15:53 ` Martin von Zweigbergk
2013-06-19 5:52 ` Johannes Sixt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1369982987-18954-3-git-send-email-martinvonz@gmail.com \
--to=martinvonz@gmail.com \
--cc=chris@arachsys.com \
--cc=felipe.contreras@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=j.sixt@viscovery.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).