From: Jeff Hostetler <git@jeffhostetler•com>
To: git@vger•kernel.org
Cc: gitster@pobox•com, peff@peff•net, jonathantanmy@google•com,
Jeff Hostetler <jeffhost@microsoft•com>
Subject: [PATCH v4 13/15] t5500: more tests for partial clone and fetch
Date: Thu, 16 Nov 2017 18:17:21 +0000 [thread overview]
Message-ID: <20171116181723.62033-14-git@jeffhostetler.com> (raw)
In-Reply-To: <20171116181723.62033-1-git@jeffhostetler.com>
From: Jonathan Tan <jonathantanmy@google•com>
Signed-off-by: Jonathan Tan <jonathantanmy@google•com>
Signed-off-by: Jeff Hostetler <jeffhost@microsoft•com>
---
t/t5500-fetch-pack.sh | 60 +++++++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 56 insertions(+), 4 deletions(-)
diff --git a/t/t5500-fetch-pack.sh b/t/t5500-fetch-pack.sh
index 23702b5..c95bb7b 100755
--- a/t/t5500-fetch-pack.sh
+++ b/t/t5500-fetch-pack.sh
@@ -782,7 +782,7 @@ test_expect_success 'filtering by size has no effect if support for it is not ad
test_i18ngrep "filtering not recognized by server" err
'
-fetch_blob_max_bytes () {
+setup_blob_max_bytes () {
SERVER="$1"
URL="$2"
@@ -794,7 +794,11 @@ fetch_blob_max_bytes () {
git clone "$URL" client &&
test_config -C client extensions.partialclone origin &&
- test_commit -C "$SERVER" two &&
+ test_commit -C "$SERVER" two
+}
+
+do_blob_max_bytes() {
+ SERVER="$1" &&
git -C client fetch --filter=blob:limit=0 origin HEAD:somewhere &&
@@ -805,14 +809,62 @@ fetch_blob_max_bytes () {
}
test_expect_success 'fetch with filtering' '
- fetch_blob_max_bytes server server
+ setup_blob_max_bytes server server &&
+ do_blob_max_bytes server
+'
+
+test_expect_success 'fetch respects configured filtering' '
+ setup_blob_max_bytes server server &&
+
+ test_config -C client core.partialclonefilter blob:limit=0 &&
+
+ git -C client fetch origin HEAD:somewhere &&
+
+ # Ensure that commit is fetched, but blob is not
+ test_config -C client extensions.partialclone "arbitrary string" &&
+ git -C client cat-file -e $(git -C server rev-parse two) &&
+ test_must_fail git -C client cat-file -e $(git hash-object server/two.t)
+'
+
+test_expect_success 'pull respects configured filtering' '
+ setup_blob_max_bytes server server &&
+
+ # Hide two.t from tip so that client does not load it upon the
+ # automatic checkout that pull performs
+ git -C server rm two.t &&
+ test_commit -C server three &&
+
+ test_config -C server uploadpack.allowanysha1inwant 1 &&
+ test_config -C client core.partialclonefilter blob:limit=0 &&
+
+ git -C client pull origin &&
+
+ # Ensure that commit is fetched, but blob is not
+ test_config -C client extensions.partialclone "arbitrary string" &&
+ git -C client cat-file -e $(git -C server rev-parse two) &&
+ test_must_fail git -C client cat-file -e $(git hash-object server/two.t)
+'
+
+test_expect_success 'clone configures filtering' '
+ rm -rf server client &&
+ test_create_repo server &&
+ test_commit -C server one &&
+ test_commit -C server two &&
+ test_config -C server uploadpack.allowanysha1inwant 1 &&
+
+ git clone --filter=blob:limit=12345 server client &&
+
+ # Ensure that we can, for example, checkout HEAD^
+ rm -rf client/.git/objects/* &&
+ git -C client checkout HEAD^
'
. "$TEST_DIRECTORY"/lib-httpd.sh
start_httpd
test_expect_success 'fetch with filtering and HTTP' '
- fetch_blob_max_bytes "$HTTPD_DOCUMENT_ROOT_PATH/server" "$HTTPD_URL/smart/server"
+ setup_blob_max_bytes "$HTTPD_DOCUMENT_ROOT_PATH/server" "$HTTPD_URL/smart/server" &&
+ do_blob_max_bytes "$HTTPD_DOCUMENT_ROOT_PATH/server"
'
stop_httpd
--
2.9.3
next prev parent reply other threads:[~2017-11-16 18:18 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-16 18:17 [PATCH v4 00/15] Parial clone part 3: clone, fetch, fetch-pack, upload-pack, and tests Jeff Hostetler
2017-11-16 18:17 ` [PATCH v4 01/15] upload-pack: add object filtering for partial clone Jeff Hostetler
2017-11-16 18:17 ` [PATCH v4 02/15] clone, fetch-pack, index-pack, transport: " Jeff Hostetler
2017-11-16 18:17 ` [PATCH v4 03/15] fetch: refactor calculation of remote list Jeff Hostetler
2017-11-16 18:17 ` [PATCH v4 04/15] fetch: add object filtering for partial fetch Jeff Hostetler
2017-11-16 18:17 ` [PATCH v4 05/15] remote-curl: add object filtering for partial clone Jeff Hostetler
2017-11-16 18:17 ` [PATCH v4 06/15] pack-objects: test support for blob filtering Jeff Hostetler
2017-11-16 18:17 ` [PATCH v4 07/15] fetch-pack: test support excluding large blobs Jeff Hostetler
2017-11-16 18:17 ` [PATCH v4 08/15] partial-clone: define partial clone settings in config Jeff Hostetler
2017-11-16 18:17 ` [PATCH v4 09/15] fetch-pack: test support excluding large blobs Jeff Hostetler
2017-11-16 18:17 ` [PATCH v4 10/15] fetch: add from_promisor and exclude-promisor-objects parameters Jeff Hostetler
2017-11-16 18:17 ` [PATCH v4 11/15] t5500: add fetch-pack tests for partial clone Jeff Hostetler
2017-11-16 18:17 ` [PATCH v4 12/15] t5601: test " Jeff Hostetler
2017-11-16 18:17 ` Jeff Hostetler [this message]
2017-11-16 18:17 ` [PATCH v4 14/15] unpack-trees: batch fetching of missing blobs Jeff Hostetler
2017-11-16 18:17 ` [PATCH v4 15/15] fetch-pack: restore save_commit_buffer after use Jeff Hostetler
2017-11-17 6:19 ` [PATCH v4 00/15] Parial clone part 3: clone, fetch, fetch-pack, upload-pack, and tests Junio C Hamano
2017-11-21 18:17 ` Jonathan Tan
2017-11-21 20:46 ` Jeff Hostetler
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=20171116181723.62033-14-git@jeffhostetler.com \
--to=git@jeffhostetler$(echo .)com \
--cc=git@vger$(echo .)kernel.org \
--cc=gitster@pobox$(echo .)com \
--cc=jeffhost@microsoft$(echo .)com \
--cc=jonathantanmy@google$(echo .)com \
--cc=peff@peff$(echo .)net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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