From patchwork Wed Apr 29 12:22:23 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Denton Liu X-Patchwork-Id: 11516879 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 4A4EC1392 for ; Wed, 29 Apr 2020 12:22:54 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 329A121D7E for ; Wed, 29 Apr 2020 12:22:54 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="NGNgTgHj" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726845AbgD2MWw (ORCPT ); Wed, 29 Apr 2020 08:22:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41322 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726558AbgD2MWv (ORCPT ); Wed, 29 Apr 2020 08:22:51 -0400 Received: from mail-qv1-xf44.google.com (mail-qv1-xf44.google.com [IPv6:2607:f8b0:4864:20::f44]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A20FFC03C1AD for ; Wed, 29 Apr 2020 05:22:51 -0700 (PDT) Received: by mail-qv1-xf44.google.com with SMTP id 59so973723qva.13 for ; Wed, 29 Apr 2020 05:22:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=YLdFmCiGZYvXv563riSjnp1kJer1Pdqf9RxzWAdABHA=; b=NGNgTgHjZQsWerijivAee+TZ0E6/JMELOo02DHf+855EudQxa6SfjVC1AKLy2+TZIA mdiiXhhq9AZFtLKMf/y5nBP6snHLmdDgc/9PBDyVE9qwMqlhu/1T3nUYLm2rWlHUhEEC cGsi2GgEc22CmIP0VRQCMjxMOiHZB4kmqx5qSmDtuH3ow0X1o4gguqGUF9z31si4MP1h 77vHKXiW/Wg3zotJW5fP6FU6vuz7b6HfRREjKGhLEBX8kguCecjKXuFtOIwtSRyrOaQJ +H+iZMK/UTE4s1C63SP1RT+2BBE/xh2yK7TG/T+am9RBe7Fod/eyqLCk4C0vszoQwNZq NPwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=YLdFmCiGZYvXv563riSjnp1kJer1Pdqf9RxzWAdABHA=; b=Jv9XsLiwQXH8fP+ZUQvfHJzoHereDRAroSYQ5eMH3U3pnnx1CB0EsZ458CE6gQyRbX kOEwELFXFs0b1uJ7YhfCte0X38e/QyCjal0rKUz6bqjFhX23gG/4kn3ktFIaqc73Oodq H1Heb1I7+P4c2UfBO6JgoY4zLFkEGiAoZzNYxT9ZWG5M7Z3oPCUqj4GT5fLqUqunRYK4 9Am4SjFF4xmWfBzDcBoLxV3HNIetoppAm4MWrUjp2dFd8pr1ZKMB6KsMINRSndQ6se7B hRGJ2UFL6MmOB2YdZ+0voug6wlAh2P/CxKzdUm+jCgO21aAzdaTy3wgSC8kbJjY1pcNp beWQ== X-Gm-Message-State: AGi0PuZ3b8y0EiCSTG6b7arUuSdHe1Smz3lNA7OUrqSUSv2U1o/9XJzt WYWywuyA8LwTuLoXZkd3P7UpOYL2 X-Google-Smtp-Source: APiQypKXU0ylFJvMF9ZMGPtnQMKH5js0gML/t4kMvtCItJxrSwneax5NTgCe0aOh2MbJ7zhXWRi1Qg== X-Received: by 2002:ad4:4c92:: with SMTP id bs18mr25072121qvb.67.1588162970668; Wed, 29 Apr 2020 05:22:50 -0700 (PDT) Received: from archbookpro.localdomain (CPE18593399858a-CM185933998587.cpe.net.cable.rogers.com. [174.112.65.113]) by smtp.gmail.com with ESMTPSA id t27sm15389383qkg.4.2020.04.29.05.22.49 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2020 05:22:50 -0700 (PDT) From: Denton Liu To: Git Mailing List Subject: [PATCH 1/4] lib-submodule-update: add space after function name Date: Wed, 29 Apr 2020 08:22:23 -0400 Message-Id: X-Mailer: git-send-email 2.26.2.548.gbb00c8a0a9 In-Reply-To: References: MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org In the shell scripts in this codebase, the usual style is to include a space between the function name and the (). Add these missing spaces to conform to the usual style of the code. Signed-off-by: Denton Liu --- t/lib-submodule-update.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/t/lib-submodule-update.sh b/t/lib-submodule-update.sh index 64fc6487dd..a3732d3f6c 100644 --- a/t/lib-submodule-update.sh +++ b/t/lib-submodule-update.sh @@ -183,7 +183,7 @@ test_git_directory_is_unchanged () { ) } -test_git_directory_exists() { +test_git_directory_exists () { test -e ".git/modules/$1" && if test -f sub1/.git then @@ -309,7 +309,7 @@ test_submodule_content () { # Internal function; use test_submodule_switch() or # test_submodule_forced_switch() instead. -test_submodule_switch_common() { +test_submodule_switch_common () { command="$1" ######################### Appearing submodule ######################### # Switching to a commit letting a submodule appear creates empty dir ... @@ -631,7 +631,7 @@ test_submodule_forced_switch () { # Internal function; use test_submodule_switch_recursing_with_args() or # test_submodule_forced_switch_recursing_with_args() instead. -test_submodule_recursing_with_args_common() { +test_submodule_recursing_with_args_common () { command="$1" ######################### Appearing submodule ######################### From patchwork Wed Apr 29 12:22:24 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Denton Liu X-Patchwork-Id: 11516883 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 244CE13B2 for ; Wed, 29 Apr 2020 12:22:58 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 0D04721D7A for ; Wed, 29 Apr 2020 12:22:58 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="q3buQ6j6" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727065AbgD2MW4 (ORCPT ); Wed, 29 Apr 2020 08:22:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41330 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726558AbgD2MWz (ORCPT ); Wed, 29 Apr 2020 08:22:55 -0400 Received: from mail-qv1-xf42.google.com (mail-qv1-xf42.google.com [IPv6:2607:f8b0:4864:20::f42]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BC997C03C1AD for ; Wed, 29 Apr 2020 05:22:53 -0700 (PDT) Received: by mail-qv1-xf42.google.com with SMTP id w18so1009201qvs.3 for ; Wed, 29 Apr 2020 05:22:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=FRRM9hc+pUxWkBOHzMIJFEwjHQLJi4u580g73H4Udmw=; b=q3buQ6j6Vpnb8SEnWMitjXomAEQWvRd9gf3o0vJRb0QiMgI9/YlU7WgP093avHIN0G 59wnz7Yv33qI3TphdbRwhYDdo1IbCQ2Ley5NCHdOpoWiE44cJ7XdLAX07DEGx2N1dY5a ORMxtX85BjpcSlYPePpPEoUxJDoYTrMvFbJ1xNVqC61d1dO98mCnN4Bc1eMtbebcaTIg +GeY0WwCTXnQzZVPyt4XV9ud40NHm8/omXIcuRp588iwTVlrbAdA8+V7mNNAkkn2tOI+ 6mU3ADd6Vt0LiuUQPuDwpovVTiZHKSoYVuwq43SJsAy29BR6PNWxrxbT10cnSTzFYQCl T1ZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=FRRM9hc+pUxWkBOHzMIJFEwjHQLJi4u580g73H4Udmw=; b=XgFWeVrvM3spe1D2gFXC9Tk1j+YT25sYaoT0RSIEM2S8TRn+uwXzROdOcUC0gcCSzP CCo7cLaUIoUPAg9/wadsIFcs7R8rFbmJ0EWFEkIUY+FVdKfV4tkFT01BMio1XbVgx/t9 A7Qe1+4/fo4wEJrRRphxoDsPmpFsjGSv0+DSAXosC914eT4CPkH0wXEg+uTs+aKXMkgb yjuIG8uqYvUfTiMZIPgDkmnARpK57FPBdWPGCxXWx6FctoUWZovsj0iIGVIfUwW9CHGG gc4Uuup6XiYNQicPjjU/n0S1RYbCGefi4Wo0vTI0Hn4kG+t+2nOCHIjjLZybOiqlubN7 QvFQ== X-Gm-Message-State: AGi0PuY+YUDm357KpvZvD3sfQRyQP/YLsXdyWd4lUqVBL54lk9RF1NzV BD3dn25g//dNl03NMLIqo2X33oZS X-Google-Smtp-Source: APiQypLMPyd3dz7nRIejtmTQDR0wfY88Fsjf/RZAnjErohgMZNDGgbjufwgt0DsiJqFHLof7nxi9vw== X-Received: by 2002:a0c:8045:: with SMTP id 63mr33284828qva.68.1588162972785; Wed, 29 Apr 2020 05:22:52 -0700 (PDT) Received: from archbookpro.localdomain (CPE18593399858a-CM185933998587.cpe.net.cable.rogers.com. [174.112.65.113]) by smtp.gmail.com with ESMTPSA id t27sm15389383qkg.4.2020.04.29.05.22.50 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2020 05:22:52 -0700 (PDT) From: Denton Liu To: Git Mailing List Subject: [PATCH 2/4] lib-submodule-update: consolidate --recurse-submodules Date: Wed, 29 Apr 2020 08:22:24 -0400 Message-Id: X-Mailer: git-send-email 2.26.2.548.gbb00c8a0a9 In-Reply-To: References: MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Both test_submodule_switch_recursing_with_args() and test_submodule_forced_switch_recursing_with_args() call the internal function test_submodule_recursing_with_args_common() with the final argument of `--recurse-submodules`. Consolidate this duplication by appending the argument in test_submodule_recursing_with_args_common(). Signed-off-by: Denton Liu --- t/lib-submodule-update.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/t/lib-submodule-update.sh b/t/lib-submodule-update.sh index a3732d3f6c..81457b4c31 100644 --- a/t/lib-submodule-update.sh +++ b/t/lib-submodule-update.sh @@ -632,7 +632,7 @@ test_submodule_forced_switch () { # Internal function; use test_submodule_switch_recursing_with_args() or # test_submodule_forced_switch_recursing_with_args() instead. test_submodule_recursing_with_args_common () { - command="$1" + command="$1 --recurse-submodules" ######################### Appearing submodule ######################### # Switching to a commit letting a submodule appear checks it out ... @@ -840,7 +840,7 @@ test_submodule_recursing_with_args_common () { # test_submodule_switch_recursing_with_args "$GIT_COMMAND" test_submodule_switch_recursing_with_args () { cmd_args="$1" - command="git $cmd_args --recurse-submodules" + command="git $cmd_args" test_submodule_recursing_with_args_common "$command" RESULTDS=success @@ -957,7 +957,7 @@ test_submodule_switch_recursing_with_args () { # away local changes in the superproject is allowed. test_submodule_forced_switch_recursing_with_args () { cmd_args="$1" - command="git $cmd_args --recurse-submodules" + command="git $cmd_args" test_submodule_recursing_with_args_common "$command" RESULT=success From patchwork Wed Apr 29 12:22:25 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Denton Liu X-Patchwork-Id: 11516881 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 75D861392 for ; Wed, 29 Apr 2020 12:22:57 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 519E621BE5 for ; Wed, 29 Apr 2020 12:22:57 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="DzN49Fct" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727088AbgD2MW4 (ORCPT ); Wed, 29 Apr 2020 08:22:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41334 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726884AbgD2MWz (ORCPT ); Wed, 29 Apr 2020 08:22:55 -0400 Received: from mail-qk1-x742.google.com (mail-qk1-x742.google.com [IPv6:2607:f8b0:4864:20::742]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0E011C03C1AE for ; Wed, 29 Apr 2020 05:22:55 -0700 (PDT) Received: by mail-qk1-x742.google.com with SMTP id c63so1690408qke.2 for ; Wed, 29 Apr 2020 05:22:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=76PB75nIBhBE2MbIhStiM2OhnO0J07/ADaU+U7aZSbI=; b=DzN49FctTNRMzWsq3GzUlsQpi8gApuXGhoXG6jB7xWRfdqf/0NylDzB5ghkBkaE2Ms l3O2rFuxmiDG8e4XIBDp6il8dvaWwZZSWVI6imQtQVrwH2WPrpTFEybDqkx0qX0YxmdH I31CcxqzXRHevYWiWdDAWTL+hW89S+CjA6v1BDnJj8F90Tfb/3ZPEV7ikUgwsptGbrTg lF7ywr9fkqvQLfqO5pn5muzxMgU7ER4qnKbkJqaloVEio2EL+4O/UB67Yd1xSt52kCO6 njGI6O13VoxB4x9MlRFhocydzvf47XphS1PXQ79f4/30w8jViHKUlAVbrFXJtdwUwQqj XN6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=76PB75nIBhBE2MbIhStiM2OhnO0J07/ADaU+U7aZSbI=; b=AE0Dc8NkkBz7QHH48E4qjuQoqbrjfFGcxWEgFZ6Ye+PhllQArrq5zTOZLIKN6OVvQX 0MbQYYKQhSjw86P0vQhgncmat9epcQRQvHjRlsrwEhectXt/sob6woDxMCXuTB9sGrJV wDtZOEhJGdGgowhN8DQRdLu9gKvk5tQTt8A4Na/EfptvziMOnYN956AtUX//wHSYShaW meBMqD+fYwvS5cUjb6PF/IH9yKvhsOm/f/C4JVx8qzYx76W5nzBpuKc/I/6U2wz3TbHS z/hw+tJfvDOOSfMMvlaKLXV7rC82IxdAo6afa14MWpVYpsvmKl3z7Dop8gZCBEbk7Yy1 I7Rw== X-Gm-Message-State: AGi0PuZbF6Ws/bWIATdYNrzcBlGr8lsEVTwcJo+r5QOVJRUFlQ1jW7KY efcaWm9HdMBTvsP0bRR9PqrJ/uME X-Google-Smtp-Source: APiQypLVerWD6Q7B7I3jpauCSvxzGMVPOyUXGGv9tBx0nTCVlEGvdz49FIl1bo73dqzNDrJ89O406Q== X-Received: by 2002:a05:620a:487:: with SMTP id 7mr20016049qkr.438.1588162973890; Wed, 29 Apr 2020 05:22:53 -0700 (PDT) Received: from archbookpro.localdomain (CPE18593399858a-CM185933998587.cpe.net.cable.rogers.com. [174.112.65.113]) by smtp.gmail.com with ESMTPSA id t27sm15389383qkg.4.2020.04.29.05.22.52 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2020 05:22:53 -0700 (PDT) From: Denton Liu To: Git Mailing List Subject: [PATCH 3/4] lib-submodule-update: prepend "git" to $command Date: Wed, 29 Apr 2020 08:22:25 -0400 Message-Id: <86eb9c5a8ad8dc0836f3a612a45a86bbd8cece24.1588162842.git.liu.denton@gmail.com> X-Mailer: git-send-email 2.26.2.548.gbb00c8a0a9 In-Reply-To: References: MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Since all invocations of test_submodule_forced_switch() are git commands, automatically prepend "git" before invoking test_submodule_switch_common(). Similarly, many invocations of test_submodule_switch() are also git commands so automatically prepend "git" before invoking test_submodule_switch_common() as well. Finally, for invocations of test_submodule_switch() that invoke a custom function, rename the old function to test_submodule_switch_func(). This is necessary because in a future commit, we will be adding some logic that needs to distinguish between an invocation of a plain git comamnd and an invocation of a test helper function. Signed-off-by: Denton Liu --- t/lib-submodule-update.sh | 14 +++++++++----- t/t1013-read-tree-submodule.sh | 4 ++-- t/t2013-checkout-submodule.sh | 4 ++-- t/t3426-rebase-submodule.sh | 4 ++-- t/t3512-cherry-pick-submodule.sh | 2 +- t/t3513-revert-submodule.sh | 2 +- t/t3906-stash-submodule.sh | 2 +- t/t4137-apply-submodule.sh | 4 ++-- t/t4255-am-submodule.sh | 4 ++-- t/t5572-pull-submodule.sh | 8 ++++---- t/t6041-bisect-submodule.sh | 2 +- t/t7112-reset-submodule.sh | 6 +++--- t/t7613-merge-submodule.sh | 8 ++++---- 13 files changed, 34 insertions(+), 30 deletions(-) diff --git a/t/lib-submodule-update.sh b/t/lib-submodule-update.sh index 81457b4c31..cd80d77707 100644 --- a/t/lib-submodule-update.sh +++ b/t/lib-submodule-update.sh @@ -307,8 +307,8 @@ test_submodule_content () { # to protect the history! # -# Internal function; use test_submodule_switch() or -# test_submodule_forced_switch() instead. +# Internal function; use test_submodule_switch_func(), test_submodule_switch_func(), +# or test_submodule_forced_switch() instead. test_submodule_switch_common () { command="$1" ######################### Appearing submodule ######################### @@ -566,8 +566,8 @@ test_submodule_switch_common () { # # Do something here that updates the worktree and index to match target, # # but not any submodule directories. # } -# test_submodule_switch "my_func" -test_submodule_switch () { +# test_submodule_switch_func "my_func" +test_submodule_switch_func () { command="$1" test_submodule_switch_common "$command" @@ -587,12 +587,16 @@ test_submodule_switch () { ' } +test_submodule_switch () { + test_submodule_switch_func "git $1" +} + # Same as test_submodule_switch(), except that throwing away local changes in # the superproject is allowed. test_submodule_forced_switch () { command="$1" KNOWN_FAILURE_FORCED_SWITCH_TESTS=1 - test_submodule_switch_common "$command" + test_submodule_switch_common "git $command" # When forced, a file in the superproject does not prevent creating a # submodule of the same name. diff --git a/t/t1013-read-tree-submodule.sh b/t/t1013-read-tree-submodule.sh index 91a6fafcb4..b6df7444c0 100755 --- a/t/t1013-read-tree-submodule.sh +++ b/t/t1013-read-tree-submodule.sh @@ -12,8 +12,8 @@ test_submodule_switch_recursing_with_args "read-tree -u -m" test_submodule_forced_switch_recursing_with_args "read-tree -u --reset" -test_submodule_switch "git read-tree -u -m" +test_submodule_switch "read-tree -u -m" -test_submodule_forced_switch "git read-tree -u --reset" +test_submodule_forced_switch "read-tree -u --reset" test_done diff --git a/t/t2013-checkout-submodule.sh b/t/t2013-checkout-submodule.sh index 8f86b5f4b2..b2bdd1fcb4 100755 --- a/t/t2013-checkout-submodule.sh +++ b/t/t2013-checkout-submodule.sh @@ -68,8 +68,8 @@ test_submodule_switch_recursing_with_args "checkout" test_submodule_forced_switch_recursing_with_args "checkout -f" -test_submodule_switch "git checkout" +test_submodule_switch "checkout" -test_submodule_forced_switch "git checkout -f" +test_submodule_forced_switch "checkout -f" test_done diff --git a/t/t3426-rebase-submodule.sh b/t/t3426-rebase-submodule.sh index a2bba04ba9..788605ccc0 100755 --- a/t/t3426-rebase-submodule.sh +++ b/t/t3426-rebase-submodule.sh @@ -20,7 +20,7 @@ git_rebase () { git rebase "$1" } -test_submodule_switch "git_rebase" +test_submodule_switch_func "git_rebase" git_rebase_interactive () { git status -su >expect && @@ -38,7 +38,7 @@ git_rebase_interactive () { git rebase -i "$1" } -test_submodule_switch "git_rebase_interactive" +test_submodule_switch_func "git_rebase_interactive" test_expect_success 'rebase interactive ignores modified submodules' ' test_when_finished "rm -rf super sub" && diff --git a/t/t3512-cherry-pick-submodule.sh b/t/t3512-cherry-pick-submodule.sh index bd78287841..6ece1d8573 100755 --- a/t/t3512-cherry-pick-submodule.sh +++ b/t/t3512-cherry-pick-submodule.sh @@ -7,7 +7,7 @@ test_description='cherry-pick can handle submodules' KNOWN_FAILURE_NOFF_MERGE_DOESNT_CREATE_EMPTY_SUBMODULE_DIR=1 KNOWN_FAILURE_NOFF_MERGE_ATTEMPTS_TO_MERGE_REMOVED_SUBMODULE_FILES=1 -test_submodule_switch "git cherry-pick" +test_submodule_switch "cherry-pick" test_expect_success 'unrelated submodule/file conflict is ignored' ' test_create_repo sub && diff --git a/t/t3513-revert-submodule.sh b/t/t3513-revert-submodule.sh index 5e39fcdb66..95a7f64471 100755 --- a/t/t3513-revert-submodule.sh +++ b/t/t3513-revert-submodule.sh @@ -26,6 +26,6 @@ git_revert () { } KNOWN_FAILURE_NOFF_MERGE_DOESNT_CREATE_EMPTY_SUBMODULE_DIR=1 -test_submodule_switch "git_revert" +test_submodule_switch_func "git_revert" test_done diff --git a/t/t3906-stash-submodule.sh b/t/t3906-stash-submodule.sh index b93d1d74da..6a7e801ca0 100755 --- a/t/t3906-stash-submodule.sh +++ b/t/t3906-stash-submodule.sh @@ -19,7 +19,7 @@ git_stash () { KNOWN_FAILURE_STASH_DOES_IGNORE_SUBMODULE_CHANGES=1 KNOWN_FAILURE_CHERRY_PICK_SEES_EMPTY_COMMIT=1 KNOWN_FAILURE_NOFF_MERGE_DOESNT_CREATE_EMPTY_SUBMODULE_DIR=1 -test_submodule_switch "git_stash" +test_submodule_switch_func "git_stash" setup_basic () { test_when_finished "rm -rf main sub" && diff --git a/t/t4137-apply-submodule.sh b/t/t4137-apply-submodule.sh index a9bd40a6d0..b645e303a0 100755 --- a/t/t4137-apply-submodule.sh +++ b/t/t4137-apply-submodule.sh @@ -9,12 +9,12 @@ apply_index () { git diff --ignore-submodules=dirty "..$1" | git apply --index - } -test_submodule_switch "apply_index" +test_submodule_switch_func "apply_index" apply_3way () { git diff --ignore-submodules=dirty "..$1" | git apply --3way - } -test_submodule_switch "apply_3way" +test_submodule_switch_func "apply_3way" test_done diff --git a/t/t4255-am-submodule.sh b/t/t4255-am-submodule.sh index 0ba8194403..1b179d5f45 100755 --- a/t/t4255-am-submodule.sh +++ b/t/t4255-am-submodule.sh @@ -9,14 +9,14 @@ am () { git format-patch --stdout --ignore-submodules=dirty "..$1" | git am - } -test_submodule_switch "am" +test_submodule_switch_func "am" am_3way () { git format-patch --stdout --ignore-submodules=dirty "..$1" | git am --3way - } KNOWN_FAILURE_NOFF_MERGE_ATTEMPTS_TO_MERGE_REMOVED_SUBMODULE_FILES=1 -test_submodule_switch "am_3way" +test_submodule_switch_func "am_3way" test_expect_success 'setup diff.submodule' ' test_commit one && diff --git a/t/t5572-pull-submodule.sh b/t/t5572-pull-submodule.sh index f916729a12..f911bf631e 100755 --- a/t/t5572-pull-submodule.sh +++ b/t/t5572-pull-submodule.sh @@ -17,21 +17,21 @@ git_pull () { } # pulls without conflicts -test_submodule_switch "git_pull" +test_submodule_switch_func "git_pull" git_pull_ff () { reset_branch_to_HEAD "$1" && git pull --ff } -test_submodule_switch "git_pull_ff" +test_submodule_switch_func "git_pull_ff" git_pull_ff_only () { reset_branch_to_HEAD "$1" && git pull --ff-only } -test_submodule_switch "git_pull_ff_only" +test_submodule_switch_func "git_pull_ff_only" git_pull_noff () { reset_branch_to_HEAD "$1" && @@ -40,7 +40,7 @@ git_pull_noff () { KNOWN_FAILURE_NOFF_MERGE_DOESNT_CREATE_EMPTY_SUBMODULE_DIR=1 KNOWN_FAILURE_NOFF_MERGE_ATTEMPTS_TO_MERGE_REMOVED_SUBMODULE_FILES=1 -test_submodule_switch "git_pull_noff" +test_submodule_switch_func "git_pull_noff" test_expect_success 'pull --recurse-submodule setup' ' test_create_repo child && diff --git a/t/t6041-bisect-submodule.sh b/t/t6041-bisect-submodule.sh index 62b8a2e7bb..0e0cdf638d 100755 --- a/t/t6041-bisect-submodule.sh +++ b/t/t6041-bisect-submodule.sh @@ -27,6 +27,6 @@ git_bisect () { git bisect bad $BAD } -test_submodule_switch "git_bisect" +test_submodule_switch_func "git_bisect" test_done diff --git a/t/t7112-reset-submodule.sh b/t/t7112-reset-submodule.sh index 67346424a5..19830d9036 100755 --- a/t/t7112-reset-submodule.sh +++ b/t/t7112-reset-submodule.sh @@ -12,10 +12,10 @@ test_submodule_switch_recursing_with_args "reset --keep" test_submodule_forced_switch_recursing_with_args "reset --hard" -test_submodule_switch "git reset --keep" +test_submodule_switch "reset --keep" -test_submodule_switch "git reset --merge" +test_submodule_switch "reset --merge" -test_submodule_forced_switch "git reset --hard" +test_submodule_forced_switch "reset --hard" test_done diff --git a/t/t7613-merge-submodule.sh b/t/t7613-merge-submodule.sh index d1e9fcc781..04bf4be7d7 100755 --- a/t/t7613-merge-submodule.sh +++ b/t/t7613-merge-submodule.sh @@ -6,14 +6,14 @@ test_description='merge can handle submodules' . "$TEST_DIRECTORY"/lib-submodule-update.sh # merges without conflicts -test_submodule_switch "git merge" +test_submodule_switch "merge" -test_submodule_switch "git merge --ff" +test_submodule_switch "merge --ff" -test_submodule_switch "git merge --ff-only" +test_submodule_switch "merge --ff-only" KNOWN_FAILURE_NOFF_MERGE_DOESNT_CREATE_EMPTY_SUBMODULE_DIR=1 KNOWN_FAILURE_NOFF_MERGE_ATTEMPTS_TO_MERGE_REMOVED_SUBMODULE_FILES=1 -test_submodule_switch "git merge --no-ff" +test_submodule_switch "merge --no-ff" test_done From patchwork Wed Apr 29 12:22:26 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Denton Liu X-Patchwork-Id: 11516885 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 8CEA81392 for ; Wed, 29 Apr 2020 12:23:01 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 70B0121D7E for ; Wed, 29 Apr 2020 12:23:01 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="s9cC88PU" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727091AbgD2MXA (ORCPT ); Wed, 29 Apr 2020 08:23:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41344 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726884AbgD2MW5 (ORCPT ); Wed, 29 Apr 2020 08:22:57 -0400 Received: from mail-qk1-x743.google.com (mail-qk1-x743.google.com [IPv6:2607:f8b0:4864:20::743]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8B1DDC03C1AD for ; Wed, 29 Apr 2020 05:22:57 -0700 (PDT) Received: by mail-qk1-x743.google.com with SMTP id n143so1664503qkn.8 for ; Wed, 29 Apr 2020 05:22:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=wKb5NlYBjMBmpKwMpbYZYjoTy0m/JspMnyKC4s4DHv0=; b=s9cC88PUEeVtOtk8+ern18NLkO+N8yMKFIu30ct3qNrY1FiBqEOFsQ8jzAH9x8Omox xd3RIAaFU/ogixQ6l/5VvroN33mt6lFIJWVkLIZ1Wje0QX+POqffyNyZvOzAQFYQt88l D/i6S1vcNg0l8AywfuvrYBqargWnQgRAj12ClKxqu5CSLDAB/pvIQ4BEPqX32HMFIHPF AnM3CbXBTuKNOSh2RlwbcnHo0OzwWT2cCqHAdpjutKMEdk7XQ5HhVcWIsUPoPj8mS5Km MmI/bsDizfAjwVHOmiW+ENuRfW/DoqYoQi53irEJYlBjj3e6LzsD/0fi3AolYZttLi2d Ksfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=wKb5NlYBjMBmpKwMpbYZYjoTy0m/JspMnyKC4s4DHv0=; b=k7QSMswC09WDC9GahSI6zehEgV4bZw7MOORNDDHzJIa54k0EhrH6HMVFRWVddGJixZ 2MlsXKHXMx3Hbn/GReGjEmKSkuE1IPNID4FBJl5J5vAibLdcNzpesLCkAbIbNb1W2PSL OrBRtH1L8GU61B8YPfyOts+oU/MvS+3Oo0DJI7pEwDfpnkVw6yiYxj8IlU5kaxsymFTT LPmJIrIeNiaz93tCjAtK/BbZiXejDjtQBRGlM04yywsZ0MdaI8qKhHgJzWEER8HsEzfb o8JhN7imd94vZjApfVBaKuFP1Sqc+u8Cl25TixTbAXxdoIGx+4bQJsxvW3TtRdZ6E/N5 0IXw== X-Gm-Message-State: AGi0PubCV5PFdxoLWi3syFUBPLL9a4lT6wlEPb0+6co5+ALFjYUlLVfk dGq5EhnwTQt7Dz+cmyuME95qs4QP X-Google-Smtp-Source: APiQypIAx3jsoYwIP840b6ghcUM1/cP5kl2134vIT88u6q1rv6ihKbQrvTTo10Ca7HaOpf0yGwuGJg== X-Received: by 2002:a37:dd5:: with SMTP id 204mr30528035qkn.321.1588162974966; Wed, 29 Apr 2020 05:22:54 -0700 (PDT) Received: from archbookpro.localdomain (CPE18593399858a-CM185933998587.cpe.net.cable.rogers.com. [174.112.65.113]) by smtp.gmail.com with ESMTPSA id t27sm15389383qkg.4.2020.04.29.05.22.53 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2020 05:22:54 -0700 (PDT) From: Denton Liu To: Git Mailing List Subject: [PATCH 4/4] lib-submodule-update: pass OVERWRITING_FAIL Date: Wed, 29 Apr 2020 08:22:26 -0400 Message-Id: <22eacd20a8213c3281974a6c103fd2d00c95efaa.1588162842.git.liu.denton@gmail.com> X-Mailer: git-send-email 2.26.2.548.gbb00c8a0a9 In-Reply-To: References: MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org We are using `test_must_fail $command`. However, $command is not necessarily a git command; it could be a test helper function. In an effort to stop using test_must_fail with non-git commands, instead of invoking `test_must_fail $command`, run `OVERWRITING_FAIL=test_must_fail $command` instead. Increase the granularity of the test helper functions by specifically choosing the individual git invocation which is designed to fail. While we're at it, some helper functions have git commands piping into another git command. Break these pipes up into two separate invocations with a file buffer so that the return code of the first command is not lost. This patch can be better viewed with `--ignore-all-space`. Signed-off-by: Denton Liu --- t/lib-submodule-update.sh | 25 +++++++++++++++++-------- t/t3426-rebase-submodule.sh | 4 ++-- t/t3513-revert-submodule.sh | 20 ++++++++++++-------- t/t3906-stash-submodule.sh | 15 +++++++++------ t/t4137-apply-submodule.sh | 6 ++++-- t/t4255-am-submodule.sh | 6 ++++-- t/t5572-pull-submodule.sh | 8 ++++---- t/t6041-bisect-submodule.sh | 33 ++++++++++++++++++--------------- 8 files changed, 70 insertions(+), 47 deletions(-) diff --git a/t/lib-submodule-update.sh b/t/lib-submodule-update.sh index cd80d77707..c8d1b6f528 100644 --- a/t/lib-submodule-update.sh +++ b/t/lib-submodule-update.sh @@ -304,12 +304,15 @@ test_submodule_content () { # a removed submodule. # # Removing a submodule containing a .git directory must fail even when forced -# to protect the history! +# to protect the history! If we are testing this case, +# OVERWRITING_FAIL=test_must_fail, otherwise OVERWRITING_FAIL will be the empty +# string. # # Internal function; use test_submodule_switch_func(), test_submodule_switch_func(), # or test_submodule_forced_switch() instead. test_submodule_switch_common () { + OVERWRITING_FAIL= command="$1" ######################### Appearing submodule ######################### # Switching to a commit letting a submodule appear creates empty dir ... @@ -443,7 +446,7 @@ test_submodule_switch_common () { ( cd submodule_update && git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - test_must_fail $command replace_sub1_with_directory && + OVERWRITING_FAIL=test_must_fail $command replace_sub1_with_directory && test_superproject_content origin/add_sub1 && test_submodule_content sub1 origin/add_sub1 ) @@ -456,7 +459,7 @@ test_submodule_switch_common () { cd submodule_update && git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && replace_gitfile_with_git_dir sub1 && - test_must_fail $command replace_sub1_with_directory && + OVERWRITING_FAIL=test_must_fail $command replace_sub1_with_directory && test_superproject_content origin/add_sub1 && test_git_directory_is_unchanged sub1 && test_submodule_content sub1 origin/add_sub1 @@ -470,7 +473,7 @@ test_submodule_switch_common () { ( cd submodule_update && git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - test_must_fail $command replace_sub1_with_file && + OVERWRITING_FAIL=test_must_fail $command replace_sub1_with_file && test_superproject_content origin/add_sub1 && test_submodule_content sub1 origin/add_sub1 ) @@ -484,7 +487,7 @@ test_submodule_switch_common () { cd submodule_update && git branch -t replace_sub1_with_file origin/replace_sub1_with_file && replace_gitfile_with_git_dir sub1 && - test_must_fail $command replace_sub1_with_file && + OVERWRITING_FAIL=test_must_fail $command replace_sub1_with_file && test_superproject_content origin/add_sub1 && test_git_directory_is_unchanged sub1 && test_submodule_content sub1 origin/add_sub1 @@ -559,6 +562,11 @@ test_submodule_switch_common () { # conditions, set the appropriate KNOWN_FAILURE_* variable used in the tests # below to 1. # +# Removing a submodule containing a .git directory must fail even when forced +# to protect the history! If we are testing this case, +# OVERWRITING_FAIL=test_must_fail, otherwise OVERWRITING_FAIL will be the empty +# string. +# # Use as follows: # # my_func () { @@ -568,6 +576,7 @@ test_submodule_switch_common () { # } # test_submodule_switch_func "my_func" test_submodule_switch_func () { + OVERWRITING_FAIL= command="$1" test_submodule_switch_common "$command" @@ -580,7 +589,7 @@ test_submodule_switch_func () { cd submodule_update && git branch -t add_sub1 origin/add_sub1 && >sub1 && - test_must_fail $command add_sub1 && + OVERWRITING_FAIL=test_must_fail $command add_sub1 && test_superproject_content origin/no_submodule && test_must_be_empty sub1 ) @@ -588,7 +597,7 @@ test_submodule_switch_func () { } test_submodule_switch () { - test_submodule_switch_func "git $1" + test_submodule_switch_func "eval \$OVERWRITING_FAIL git $1" } # Same as test_submodule_switch(), except that throwing away local changes in @@ -596,7 +605,7 @@ test_submodule_switch () { test_submodule_forced_switch () { command="$1" KNOWN_FAILURE_FORCED_SWITCH_TESTS=1 - test_submodule_switch_common "git $command" + test_submodule_switch_common "eval \$OVERWRITING_FAIL git $command" # When forced, a file in the superproject does not prevent creating a # submodule of the same name. diff --git a/t/t3426-rebase-submodule.sh b/t/t3426-rebase-submodule.sh index 788605ccc0..c6a7f584ed 100755 --- a/t/t3426-rebase-submodule.sh +++ b/t/t3426-rebase-submodule.sh @@ -17,7 +17,7 @@ git_rebase () { git status -su >actual && ls -1pR * >>actual && test_cmp expect actual && - git rebase "$1" + $OVERWRITING_FAIL git rebase "$1" } test_submodule_switch_func "git_rebase" @@ -35,7 +35,7 @@ git_rebase_interactive () { test_cmp expect actual && set_fake_editor && echo "fake-editor.sh" >.git/info/exclude && - git rebase -i "$1" + $OVERWRITING_FAIL git rebase -i "$1" } test_submodule_switch_func "git_rebase_interactive" diff --git a/t/t3513-revert-submodule.sh b/t/t3513-revert-submodule.sh index 95a7f64471..6c899db7e1 100755 --- a/t/t3513-revert-submodule.sh +++ b/t/t3513-revert-submodule.sh @@ -15,14 +15,18 @@ git_revert () { git status -su >expect && ls -1pR * >>expect && tar cf "$TRASH_DIRECTORY/tmp.tar" * && - git checkout "$1" && - git revert HEAD && - rm -rf * && - tar xf "$TRASH_DIRECTORY/tmp.tar" && - git status -su >actual && - ls -1pR * >>actual && - test_cmp expect actual && - git revert HEAD + $OVERWRITING_FAIL git checkout "$1" && + if test -z "$OVERWRITING_FAIL" + then + git checkout "$1" && + git revert HEAD && + rm -rf * && + tar xf "$TRASH_DIRECTORY/tmp.tar" && + git status -su >actual && + ls -1pR * >>actual && + test_cmp expect actual && + git revert HEAD + fi } KNOWN_FAILURE_NOFF_MERGE_DOESNT_CREATE_EMPTY_SUBMODULE_DIR=1 diff --git a/t/t3906-stash-submodule.sh b/t/t3906-stash-submodule.sh index 6a7e801ca0..860940072d 100755 --- a/t/t3906-stash-submodule.sh +++ b/t/t3906-stash-submodule.sh @@ -8,12 +8,15 @@ test_description='stash can handle submodules' git_stash () { git status -su >expect && ls -1pR * >>expect && - git read-tree -u -m "$1" && - git stash && - git status -su >actual && - ls -1pR * >>actual && - test_cmp expect actual && - git stash apply + $OVERWRITING_FAIL git read-tree -u -m "$1" && + if test -z "$OVERWRITING_FAIL" + then + git stash && + git status -su >actual && + ls -1pR * >>actual && + test_cmp expect actual && + git stash apply + fi } KNOWN_FAILURE_STASH_DOES_IGNORE_SUBMODULE_CHANGES=1 diff --git a/t/t4137-apply-submodule.sh b/t/t4137-apply-submodule.sh index b645e303a0..dd08d9e1a4 100755 --- a/t/t4137-apply-submodule.sh +++ b/t/t4137-apply-submodule.sh @@ -6,13 +6,15 @@ test_description='git apply handling submodules' . "$TEST_DIRECTORY"/lib-submodule-update.sh apply_index () { - git diff --ignore-submodules=dirty "..$1" | git apply --index - + git diff --ignore-submodules=dirty "..$1" >diff && + $OVERWRITING_FAIL git apply --index - diff && + $OVERWRITING_FAIL git apply --3way - patch && + $OVERWRITING_FAIL git am - patch && + $OVERWRITING_FAIL git am --3way - >expect && tar cf "$TRASH_DIRECTORY/tmp.tar" * && GOOD=$(git rev-parse --verify HEAD) && - git checkout "$1" && - echo "foo" >bar && - git add bar && - git commit -m "bisect bad" && - BAD=$(git rev-parse --verify HEAD) && - git reset --hard HEAD^^ && - git submodule update && - git bisect start && - git bisect good $GOOD && - rm -rf * && - tar xf "$TRASH_DIRECTORY/tmp.tar" && - git status -su >actual && - ls -1pR * >>actual && - test_cmp expect actual && - git bisect bad $BAD + $OVERWRITING_FAIL git checkout "$1" && + if test -z "$OVERWRITING_FAIL" + then + echo "foo" >bar && + git add bar && + git commit -m "bisect bad" && + BAD=$(git rev-parse --verify HEAD) && + git reset --hard HEAD^^ && + git submodule update && + git bisect start && + git bisect good $GOOD && + rm -rf * && + tar xf "$TRASH_DIRECTORY/tmp.tar" && + git status -su >actual && + ls -1pR * >>actual && + test_cmp expect actual && + git bisect bad $BAD + fi } test_submodule_switch_func "git_bisect"