From patchwork Fri Aug 14 19:32:34 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Tan X-Patchwork-Id: 11715167 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8E82314F6 for ; Fri, 14 Aug 2020 19:32:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 6B5F720838 for ; Fri, 14 Aug 2020 19:32:41 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="lCI1yj9b" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728276AbgHNTck (ORCPT ); Fri, 14 Aug 2020 15:32:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56670 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728243AbgHNTcj (ORCPT ); Fri, 14 Aug 2020 15:32:39 -0400 Received: from mail-pg1-x549.google.com (mail-pg1-x549.google.com [IPv6:2607:f8b0:4864:20::549]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C7976C061385 for ; Fri, 14 Aug 2020 12:32:39 -0700 (PDT) Received: by mail-pg1-x549.google.com with SMTP id z16so6430192pgh.21 for ; Fri, 14 Aug 2020 12:32:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:message-id:mime-version:subject:from:to:cc; bh=Kfc/vWbpVXhGY6mUz9dU3fLxpi01XFofO35WRF8Q2dU=; b=lCI1yj9bdooG4tJ9mC+7qWBZM1dgancyydfnaKLzR+Q0bwWTSczyRnkVQvFGFS3dAZ wDcUbprKMUSEuB5uEbtM/kQ7YoC97lhIwwFGp7A0DxGntKdKzqpGMXJm6HVIt14GYiB4 4edZBEohgajlakWe28mG0D9Myfc8J6s8plP5bxBWbVTUzA++c0LNvDi/0GhSHdMIFINF j5Y+RDfUseYwjKh01PlxpjxMPvk09wSYr+fkEIIt2jittSKPOcHv08Qg5qYsJevoWMTb 4b7lBLSn5bhzOnrv3WVaTQJSVk6nDD7jknvxxSCP7wE0Bd6MFQ85PnDHvzu360wvPgnt Kepg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:message-id:mime-version:subject:from:to:cc; bh=Kfc/vWbpVXhGY6mUz9dU3fLxpi01XFofO35WRF8Q2dU=; b=BiKsZnuMkOTm7evSX9LydhTt74UnfNpzADpLCTt0O/jFTM6KNoad/K2bIZWDNRQ129 P/1yU1CGgkXhxX1iWKBKPFSwIHWrghezrvdGUzHIgT4nWAQBSmHQRzUaO6x0qwHxpAx+ zK+hHQkXfUraQJNfGn4GLbp6xa8p4pordxF97nOw1zx34DDLJ26YkjLuAobqkY6u+zn3 pzyNndiFAiQQUiXAoqcvRKBM+F9iuayh57vLk+s/QEShKz3Sk+m/IcDa9bYHuYVDc6H3 fYZds7PhmWoM8A3vbxKLw1lkC5jbXhz/MxQ5e2R3OEzsbePNtNtlcnZTY0bpdCN9YzOh lcJA== X-Gm-Message-State: AOAM532fhDG7xU3Z2OObhOLMpYOFfUw1qjyJ4DeCptbi2JMgEf7fmRZ9 brCky2KbogZ/yPu0EsNO/BBLZW6jQ6B/vigTM/jmo6CM5eZ33Ppo0RaWuH/bzn6uSKGiitCJ9SR uFncjVrcoe4dw9FcethTEZSVfdGOiF8etXLzCVn43aRIl7Yj4f4xYwfhnW8D67R7MsFBkIvzVT3 Su X-Google-Smtp-Source: ABdhPJzu3i1YLOYkc++iZuJd69hhEkWgZdOgPtgxJHsiX0oWYiT+4pSFyt03/L+Ion7Js2yeLHsxWmFRpnSKPJVINYeH X-Received: by 2002:a17:90a:aa8e:: with SMTP id l14mr3680920pjq.67.1597433558919; Fri, 14 Aug 2020 12:32:38 -0700 (PDT) Date: Fri, 14 Aug 2020 12:32:34 -0700 Message-Id: <20200814193234.3072139-1-jonathantanmy@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.28.0.220.ged08abb693-goog Subject: [PATCH] fetch-pack: make packfile URIs work with transfer.fsckobjects From: Jonathan Tan To: git@vger.kernel.org Cc: Jonathan Tan Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org When fetching with packfile URIs and transfer.fsckobjects=1, use the --fsck-objects instead of the --strict flag when invoking index-pack so that links are not checked, only objects. This is because incomplete links are expected. (A subsequent connectivity check will be done when all the packs have been downloaded regardless of whether transfer.fsckobjects is set.) This is similar to 98a2ea46c2 ("fetch-pack: do not check links for partial fetch", 2018-03-15), but for packfile URIs instead of partial clones. Signed-off-by: Jonathan Tan --- The subject is longer than 50 characters but I couldn't find a way to shorten it, especially since I think it's important to mention packfile URIs and transfer.fsckobjects. Any suggestions appreciated. --- fetch-pack.c | 2 +- t/t5702-protocol-v2.sh | 53 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/fetch-pack.c b/fetch-pack.c index 7f20eca4f8..66631d0034 100644 --- a/fetch-pack.c +++ b/fetch-pack.c @@ -892,7 +892,7 @@ static int get_pack(struct fetch_pack_args *args, : transfer_fsck_objects >= 0 ? transfer_fsck_objects : 0) { - if (args->from_promisor) + if (args->from_promisor || !only_packfile) /* * We cannot use --strict in index-pack because it * checks both broken objects and links, but we only diff --git a/t/t5702-protocol-v2.sh b/t/t5702-protocol-v2.sh index 5a60fbe3ed..8c6c67b10d 100755 --- a/t/t5702-protocol-v2.sh +++ b/t/t5702-protocol-v2.sh @@ -883,6 +883,59 @@ test_expect_success 'fetching with valid packfile URI but invalid hash fails' ' test_i18ngrep "pack downloaded from.*does not match expected hash" err ' +test_expect_success 'packfile-uri with transfer.fsckobjects' ' + P="$HTTPD_DOCUMENT_ROOT_PATH/http_parent" && + rm -rf "$P" http_child log && + + git init "$P" && + git -C "$P" config "uploadpack.allowsidebandall" "true" && + + echo my-blob >"$P/my-blob" && + git -C "$P" add my-blob && + git -C "$P" commit -m x && + + configure_exclusion "$P" my-blob >h && + + sane_unset GIT_TEST_SIDEBAND_ALL && + git -c protocol.version=2 -c transfer.fsckobjects=1 \ + -c fetch.uriprotocols=http,https \ + clone "$HTTPD_URL/smart/http_parent" http_child && + + # Ensure that there are exactly 4 files (2 .pack and 2 .idx). + ls http_child/.git/objects/pack/* >filelist && + test_line_count = 4 filelist +' + +test_expect_success 'packfile-uri with transfer.fsckobjects fails on bad object' ' + P="$HTTPD_DOCUMENT_ROOT_PATH/http_parent" && + rm -rf "$P" http_child log && + + git init "$P" && + git -C "$P" config "uploadpack.allowsidebandall" "true" && + + cat >bogus-commit < 1234567890 +0000 + +This commit object intentionally broken +EOF + BOGUS=$(git -C "$P" hash-object -t commit -w --stdin "$P/my-blob" && + git -C "$P" add my-blob && + git -C "$P" commit -m x && + + configure_exclusion "$P" my-blob >h && + + sane_unset GIT_TEST_SIDEBAND_ALL && + test_must_fail git -c protocol.version=2 -c transfer.fsckobjects=1 \ + -c fetch.uriprotocols=http,https \ + clone "$HTTPD_URL/smart/http_parent" http_child 2>error && + test_i18ngrep "invalid author/committer line - missing email" error +' + # DO NOT add non-httpd-specific tests here, because the last part of this # test script is only executed when httpd is available and enabled. From patchwork Mon Aug 17 19:48:19 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Tan X-Patchwork-Id: 11719165 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 0241A13A4 for ; Mon, 17 Aug 2020 19:49:14 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id D6D0720716 for ; Mon, 17 Aug 2020 19:49:13 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="n7NzC9Eb" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729540AbgHQTtN (ORCPT ); Mon, 17 Aug 2020 15:49:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46140 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732757AbgHQTsd (ORCPT ); Mon, 17 Aug 2020 15:48:33 -0400 Received: from mail-pj1-x1049.google.com (mail-pj1-x1049.google.com [IPv6:2607:f8b0:4864:20::1049]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EBA20C061389 for ; Mon, 17 Aug 2020 12:48:32 -0700 (PDT) Received: by mail-pj1-x1049.google.com with SMTP id ei10so11444844pjb.2 for ; Mon, 17 Aug 2020 12:48:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=1ADX3FfZOu5kbBBMDbPp/aKIrw2ohWcm/lEUqfN3uwc=; b=n7NzC9EbzFWTWfkpMaQoZUyfy5hCGDOkJmhXljTnb+bHKkeBFmnk/ItLTrtaZHGNu4 39wsDLkm1cHF/0XJXhCKSBv++51L5CftOjIcSM22br+n+Hkc/bCSrtqdBuyoT7rSlBdq 4ytUnO6bUBrjvFEeHMTxa1Hex5lpsYRQBIxMnWBFFvxDwItXp80yK5haQ/cr1BBarcH0 /snYlWLLvT2RH/K+9bU+xyOS4rLQzkbM4NJCnkS8WH82wvThyGzVIlPJU2rDLVVze7TT ZHv1RPirRGXbznclk9HC0m7++xlbl7acRlESgBZYkm654sIDaZcLwG2r0131BMmyWkUk uqvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=1ADX3FfZOu5kbBBMDbPp/aKIrw2ohWcm/lEUqfN3uwc=; b=DLGd8l4UtlihKoHInr3I+PlAg45iEY+4rJ5CgF122pmr+DErVa0/XN/9LGHPa+6IQV +C8YG4ilXuxkPu2fl3KdDdJaFwXRr/kasaG/v+AumcCZwvQ1TM8oMLpYys/BKIlcavo3 bVip8Iu076n20sJL7PiVug2u/ILOF28mIOkyD0sYTbOCJXeZDGMeLPy/BlGojdlxGjsZ lR2TaZ7ooehkE2fI1M3APzVt6z6bwT+C+HtACeQP7IKDgtNfXUkI0OLt5alSFKvaRVaN 2t06SQICfxrR+TX+y9sok7afTzLwbul1uQqv0qqsxx41CHMHsCTpxlEU/WZVxfZrS0p2 JMjA== X-Gm-Message-State: AOAM531GRjddBuESUTzI6WcuRWd+Ym+n8LVZu/uostOjsQ0GgZEoJqBE QemYbiAQ4+GgIqetKjeBTu2g/PSehEcP/PK3tvEx+TA693L1gU9DizyKG07+CTzRIFGJLtAM/3Z OtIpEABtRHq5k/dMVUZBOXSRBjnZjTKxRgE0X6qNXFbBDQZlA0osBjmgu2xEJNIPaSgne3EMNi4 DI X-Google-Smtp-Source: ABdhPJyGQADmPqjk5U9yo/LFaLZkBDA2NlmwbDYoSakXiwXUkhbOwq7qNITcCsUM3mAGz19xCrGRNC50FxyUcSRyngCk X-Received: by 2002:a17:90a:bb81:: with SMTP id v1mr13684009pjr.168.1597693712320; Mon, 17 Aug 2020 12:48:32 -0700 (PDT) Date: Mon, 17 Aug 2020 12:48:19 -0700 In-Reply-To: Message-Id: Mime-Version: 1.0 References: <20200814193234.3072139-1-jonathantanmy@google.com> X-Mailer: git-send-email 2.28.0.220.ged08abb693-goog Subject: [PATCH v2 2/3] fetch-pack: document only_packfile in get_pack() From: Jonathan Tan To: git@vger.kernel.org Cc: Jonathan Tan , gitster@pobox.com Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org dd4b732df7 ("upload-pack: send part of packfile response as uri", 2020-06-10) added the "only_packfile" parameter to get_pack() but did not document it. Add documentation. Signed-off-by: Jonathan Tan --- fetch-pack.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/fetch-pack.c b/fetch-pack.c index 7f20eca4f8..289121038e 100644 --- a/fetch-pack.c +++ b/fetch-pack.c @@ -794,6 +794,10 @@ static void write_promisor_file(const char *keep_name, strbuf_release(&promisor_name); } +/* + * Pass 1 as "only_packfile" if the pack received is the only pack in this + * fetch request (that is, if there were no packfile URIs provided). + */ static int get_pack(struct fetch_pack_args *args, int xd[2], struct string_list *pack_lockfiles, int only_packfile, From patchwork Mon Aug 17 19:48:20 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Tan X-Patchwork-Id: 11719163 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 724D213A4 for ; Mon, 17 Aug 2020 19:49:07 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 51C2B20716 for ; Mon, 17 Aug 2020 19:49:07 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="pueR+Zzo" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732766AbgHQTtE (ORCPT ); Mon, 17 Aug 2020 15:49:04 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46146 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732760AbgHQTsf (ORCPT ); Mon, 17 Aug 2020 15:48:35 -0400 Received: from mail-pg1-x54a.google.com (mail-pg1-x54a.google.com [IPv6:2607:f8b0:4864:20::54a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 37EAFC061343 for ; Mon, 17 Aug 2020 12:48:35 -0700 (PDT) Received: by mail-pg1-x54a.google.com with SMTP id b136so10749736pga.0 for ; Mon, 17 Aug 2020 12:48:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=5uYLX8xz93aQRA5XC5qOfdVCPa4+OnabcgVJHR5jmvI=; b=pueR+ZzowclSrWcOQW9jdcvM2/ySlRSdPHMHMhGWH2VEYwuaILpQiOrBO7zoWlGhGy 8p/V+p1oM5CE4R6Rt26ou70x++IXRAutjYihcppkbspsV7HNAvOPkIMwl5J/s9ny2hDe 2l0Hp4/Sog2oIszBISWtmIMe5ECBH4rbDzuby9gbasuyW6HlgkiuM+HjZm7ePgTHFhXG CzyNjZxdkgJLjzduiicRuz4a01D2xOV4a7o+mPPW8iXbUVl22qDrF9BXMt/5lmuM6Fng b1nru7DQTibtbysHA4hI7QHhgM+WuMfWJj5PzBJozGoTTo7v3te2HBBkV28LFfNhUvTc s8vQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=5uYLX8xz93aQRA5XC5qOfdVCPa4+OnabcgVJHR5jmvI=; b=tIcuNoVReV7QgSOh7+rwdaBtVHMHdPDVfK0IKGmLjBVQWkGgeLljs/bQJghFV7x8jG Lbra0HGcBNRwW6gk9ehiTi971xyHeUN/EUauU9AI9DB+Q6q/7AfCQD6YLtC1CYbqtDMR A2k46qps5CcnQ9hHycgUXojjFcgEqykLNNzWVGWWPbFmDIG0stKWVPqCYx8QG4A9AbLZ As/DBWEFqEwD86LKygTxWDAhB+ZYmEPTexKwqlu+UDvPrjhT2P2BHk/RoMSv4bibATTv MyfqMfJWMORfHcXGgRwrGtB0c6e/417gA/Nx8BhpRzF8Bvwhy3iYv4yhsAgJc99Sq2iR 7M6g== X-Gm-Message-State: AOAM5335OWrc4N/Z9KYHaxjv0EeuB6ML/sZoU9yKi2p7zAh+yr8ZgubG U8Px+fxr69bhH0Qx/QIJFRbB4kL7xKTIq27epoUxYAMZlRzplMljf31kAH+0HBkphd21INMVL49 BDSsAhhZ3n/Xruiq/LcDdv5InzbwKVHHUKk/rhYSAdHiJu1Q8q0Pp2IqfXLnTjkD4dgMDdCPuU5 Yq X-Google-Smtp-Source: ABdhPJzmXnPx9D7ZjEg2qLbc3/G3aczXv3wTaeacc+LuPtGwbA2y7VcpDLndMxo556al6H+pNcmLh6VD0Yb+QKj5qs5z X-Received: by 2002:a17:90a:bc96:: with SMTP id x22mr14515772pjr.164.1597693713775; Mon, 17 Aug 2020 12:48:33 -0700 (PDT) Date: Mon, 17 Aug 2020 12:48:20 -0700 In-Reply-To: Message-Id: <53270b3033967bec664a264a1770e47cb4c12348.1597693540.git.jonathantanmy@google.com> Mime-Version: 1.0 References: <20200814193234.3072139-1-jonathantanmy@google.com> X-Mailer: git-send-email 2.28.0.220.ged08abb693-goog Subject: [PATCH v2 3/3] fetch-pack: make packfile URIs work with transfer.fsckobjects From: Jonathan Tan To: git@vger.kernel.org Cc: Jonathan Tan , gitster@pobox.com Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org When fetching with packfile URIs and transfer.fsckobjects=1, use the --fsck-objects instead of the --strict flag when invoking index-pack so that links are not checked, only objects. This is because incomplete links are expected. (A subsequent connectivity check will be done when all the packs have been downloaded regardless of whether transfer.fsckobjects is set.) This is similar to 98a2ea46c2 ("fetch-pack: do not check links for partial fetch", 2018-03-15), but for packfile URIs instead of partial clones. Signed-off-by: Jonathan Tan --- The subject is longer than 50 characters but I couldn't find a way to shorten it, especially since I think it's important to mention packfile URIs and transfer.fsckobjects. Any suggestions appreciated. --- fetch-pack.c | 2 +- t/t5702-protocol-v2.sh | 53 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/fetch-pack.c b/fetch-pack.c index 289121038e..0f1a84c061 100644 --- a/fetch-pack.c +++ b/fetch-pack.c @@ -896,7 +896,7 @@ static int get_pack(struct fetch_pack_args *args, : transfer_fsck_objects >= 0 ? transfer_fsck_objects : 0) { - if (args->from_promisor) + if (args->from_promisor || !only_packfile) /* * We cannot use --strict in index-pack because it * checks both broken objects and links, but we only diff --git a/t/t5702-protocol-v2.sh b/t/t5702-protocol-v2.sh index 5a60fbe3ed..8c6c67b10d 100755 --- a/t/t5702-protocol-v2.sh +++ b/t/t5702-protocol-v2.sh @@ -883,6 +883,59 @@ test_expect_success 'fetching with valid packfile URI but invalid hash fails' ' test_i18ngrep "pack downloaded from.*does not match expected hash" err ' +test_expect_success 'packfile-uri with transfer.fsckobjects' ' + P="$HTTPD_DOCUMENT_ROOT_PATH/http_parent" && + rm -rf "$P" http_child log && + + git init "$P" && + git -C "$P" config "uploadpack.allowsidebandall" "true" && + + echo my-blob >"$P/my-blob" && + git -C "$P" add my-blob && + git -C "$P" commit -m x && + + configure_exclusion "$P" my-blob >h && + + sane_unset GIT_TEST_SIDEBAND_ALL && + git -c protocol.version=2 -c transfer.fsckobjects=1 \ + -c fetch.uriprotocols=http,https \ + clone "$HTTPD_URL/smart/http_parent" http_child && + + # Ensure that there are exactly 4 files (2 .pack and 2 .idx). + ls http_child/.git/objects/pack/* >filelist && + test_line_count = 4 filelist +' + +test_expect_success 'packfile-uri with transfer.fsckobjects fails on bad object' ' + P="$HTTPD_DOCUMENT_ROOT_PATH/http_parent" && + rm -rf "$P" http_child log && + + git init "$P" && + git -C "$P" config "uploadpack.allowsidebandall" "true" && + + cat >bogus-commit < 1234567890 +0000 + +This commit object intentionally broken +EOF + BOGUS=$(git -C "$P" hash-object -t commit -w --stdin "$P/my-blob" && + git -C "$P" add my-blob && + git -C "$P" commit -m x && + + configure_exclusion "$P" my-blob >h && + + sane_unset GIT_TEST_SIDEBAND_ALL && + test_must_fail git -c protocol.version=2 -c transfer.fsckobjects=1 \ + -c fetch.uriprotocols=http,https \ + clone "$HTTPD_URL/smart/http_parent" http_child 2>error && + test_i18ngrep "invalid author/committer line - missing email" error +' + # DO NOT add non-httpd-specific tests here, because the last part of this # test script is only executed when httpd is available and enabled.