All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Devin J. Pohly" <djpohly@gmail.com>
To: git@vger.kernel.org
Cc: "Devin J. Pohly" <djpohly@gmail.com>
Subject: [PATCH 1/4] t7003: ensure --prune-empty can prune root commit
Date: Thu, 23 Feb 2017 02:27:33 -0600	[thread overview]
Message-ID: <20170223082736.31283-1-djpohly@gmail.com> (raw)

New test to expose a bug in filter-branch whereby the root commit is
never pruned, even though its tree is empty and --prune-empty is given.

The setup isn't exactly pretty, but I couldn't think of a simpler way to
create a parallel commit graph sans the first commit.

Signed-off-by: Devin J. Pohly <djpohly@gmail.com>
---
 t/t7003-filter-branch.sh | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/t/t7003-filter-branch.sh b/t/t7003-filter-branch.sh
index cb8fbd8e5..2dfe46250 100755
--- a/t/t7003-filter-branch.sh
+++ b/t/t7003-filter-branch.sh
@@ -313,6 +313,27 @@ test_expect_success 'Tag name filtering allows slashes in tag names' '
 	git cat-file tag X/2 > actual &&
 	test_cmp expect actual
 '
+test_expect_success 'setup --prune-empty comparisons' '
+	git checkout --orphan master-no-a &&
+	git rm -rf . &&
+	unset test_tick &&
+	test_tick &&
+	GIT_COMMITTER_DATE="@0 +0000" GIT_AUTHOR_DATE="@0 +0000" &&
+	test_commit --notick B B.t B Bx &&
+	git checkout -b branch-no-a Bx &&
+	test_commit D D.t D Dx &&
+	mkdir dir &&
+	test_commit dir/D dir/D.t dir/D dir/Dx &&
+	test_commit E E.t E Ex &&
+	git checkout master-no-a &&
+	test_commit C C.t C Cx &&
+	git checkout branch-no-a &&
+	git merge Cx -m "Merge tag '\''C'\'' into branch" &&
+	git tag Fx &&
+	test_commit G G.t G Gx &&
+	test_commit H H.t H Hx &&
+	git checkout branch
+'
 
 test_expect_success 'Prune empty commits' '
 	git rev-list HEAD > expect &&
@@ -341,6 +362,15 @@ test_expect_success 'prune empty works even without index/tree filters' '
 	test_cmp expect actual
 '
 
+test_expect_success '--prune-empty is able to prune root commit' '
+	git rev-list branch-no-a >expect &&
+	git branch testing H &&
+	git filter-branch -f --prune-empty --index-filter "git update-index --remove A.t" testing &&
+	git rev-list testing >actual &&
+	git branch -D testing &&
+	test_cmp expect actual
+'
+
 test_expect_success '--remap-to-ancestor with filename filters' '
 	git checkout master &&
 	git reset --hard A &&
-- 
2.11.1


             reply	other threads:[~2017-02-23  8:27 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-23  8:27 Devin J. Pohly [this message]
2017-02-23  8:27 ` [PATCH 2/4] t7003: ensure --prune-empty removes entire branch when applicable Devin J. Pohly
2017-02-23  8:27 ` [PATCH 3/4] filter-branch: fix --prune-empty on parentless commits Devin J. Pohly
2017-02-23 21:17   ` Junio C Hamano
2017-02-23 21:33     ` Devin J. Pohly
2017-03-02 19:36       ` Junio C Hamano
2017-03-02 21:18         ` Devin J. Pohly
2017-03-02 21:39           ` Junio C Hamano
2017-03-02 23:28         ` Jacob Keller
2017-03-03  7:55         ` Jeff King
2017-03-03 20:30           ` Devin J. Pohly
2017-03-03 20:43           ` Junio C Hamano
2017-02-23  8:27 ` [PATCH 4/4] p7000: add test for filter-branch with --prune-empty Devin J. Pohly
2017-03-03  7:56   ` Jeff King
2017-03-03 20:34     ` Devin J. Pohly

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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170223082736.31283-1-djpohly@gmail.com \
    --to=djpohly@gmail.com \
    --cc=git@vger.kernel.org \
    /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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.