From: Johannes Schindelin <Johannes.Schindelin@gmx.de>
To: Kevin Willford <kcwillford@gmail.com>
Cc: git@vger.kernel.org
Subject: [PATCH 2/1] Verify that --cherry-pick avoids looking at full diffs
Date: Fri, 15 Jul 2016 17:51:51 +0200 (CEST) [thread overview]
Message-ID: <alpine.DEB.2.20.1607151749540.6426@virtualbox> (raw)
The entire point of the previous patch was to make sure that we look at
abbreviated patch IDs (using the diff *headers* only, but avoiding
to load the blobs into memory and diff them) first, and only look at
full patch IDs when the abbreviated patch IDs were not for the
--cherry-pick test.
Let's make sure that we actually avoid looking at the full patch ID,
simply by corrupting an object that is needed for the full patch ID, and
then seeing that --cherry-pick still works.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
On Fri, 15 Jul 2016, Johannes Schindelin wrote:
> I also think that this patch series could use a test that
> verifies that we no longer generate unneeded diffs. Maybe by
> rebasing a commit on top of an commit touching a different file,
> after corrupting the blob of the latter one? Let me give it a
> try.
And here it is. I verified that this test passes with your patch
and fails without it.
t/t6007-rev-list-cherry-pick-file.sh | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/t/t6007-rev-list-cherry-pick-file.sh b/t/t6007-rev-list-cherry-pick-file.sh
index 28d4f6b..a5f7c2a 100755
--- a/t/t6007-rev-list-cherry-pick-file.sh
+++ b/t/t6007-rev-list-cherry-pick-file.sh
@@ -207,4 +207,23 @@ test_expect_success '--count --left-right' '
test_cmp expect actual
'
+remove_loose_object () {
+ sha1="$(git rev-parse "$1")" &&
+ remainder=${sha1#??} &&
+ firsttwo=${sha1%$remainder} &&
+ rm .git/objects/$firsttwo/$remainder
+}
+
+test_expect_success '--cherry-pick avoids looking at full diffs' '
+ git checkout -b shy-diff &&
+ test_commit dont-look-at-me &&
+ echo Hello >dont-look-at-me.t &&
+ test_tick &&
+ git commit -m tip dont-look-at-me.t &&
+ git checkout -b mainline HEAD^ &&
+ test_commit to-cherry-pick &&
+ remove_loose_object shy-diff^:dont-look-at-me.t &&
+ git rev-list --cherry-pick ...shy-diff
+'
+
test_done
--
2.9.0.281.g286a8d9
next reply other threads:[~2016-07-15 15:51 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-15 15:51 Johannes Schindelin [this message]
2016-07-15 17:07 ` [PATCH 2/1] Verify that --cherry-pick avoids looking at full diffs Junio C Hamano
2016-07-16 8:34 ` Johannes Schindelin
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=alpine.DEB.2.20.1607151749540.6426@virtualbox \
--to=johannes.schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=kcwillford@gmail.com \
/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 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 NNTP newsgroup(s).