From patchwork Thu May 21 00:24:15 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Denton Liu X-Patchwork-Id: 11561821 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 096C8159A for ; Thu, 21 May 2020 00:24:47 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E744A205CB for ; Thu, 21 May 2020 00:24:46 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="J6bLqcWl" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726853AbgEUAYp (ORCPT ); Wed, 20 May 2020 20:24:45 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36566 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726737AbgEUAYo (ORCPT ); Wed, 20 May 2020 20:24:44 -0400 Received: from mail-qt1-x843.google.com (mail-qt1-x843.google.com [IPv6:2607:f8b0:4864:20::843]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7A653C061A0E for ; Wed, 20 May 2020 17:24:44 -0700 (PDT) Received: by mail-qt1-x843.google.com with SMTP id n22so4131408qtv.12 for ; Wed, 20 May 2020 17:24:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=b9vrEXNrlvsTF7iXXpc+ogGPqRX1gDZ1dUMWxM/1a7s=; b=J6bLqcWlk935B5fj18VJOXjcUDuysyWwToRX+SQfdxjkr1HJcj+9M6peVKz7JFf6Ji 4smp/vdbCHXrD3Ayvv09dfAwbXuW1UvL60VJB/7lbJpwAbk0cMXdsK8F91+KixzNx3lk i6Yi3oB6ZOZll54B5Cburdi9tTHxJrRsC2PdewmonmHAoY9c6rbcHRuOAW5GKJF7646+ xDyDO+iZCl/9uyfpM39zh23ssC+wJ9lQdoReG5f/iye5O4IXKWvQAQD8thXoCJ7PKXf9 U+s+xo+gqg/jH21wXNZ8cwrgqaCvOkuzVqqIuAqGbHseuxDvQX4EMQUOH1VCafjr4p1l ziFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=b9vrEXNrlvsTF7iXXpc+ogGPqRX1gDZ1dUMWxM/1a7s=; b=pWHks3ComccI6Rtxav+QEkEQEzmql+u6Qo2k6LcTGDY0TDNnoFh9qJq1L+W8TSS3IC 3qca+SsjEoSp7TC0gwQ+64S/33VOS6G9urY3qrdxtf3SokKPHNBJS1UH8FnWa3WkZGsW cp3CfQJu0pzxasVLcyV4riTLACojj459Aae+zrcbrC0/zTFIkkbOd+YaVYfvlyQYQAaX GDZ5pvppUzGgbauOKqi2d+m1EAAlhj6/4mgk15Z+SwCAZu6UubaeIwUO30ljLLahgGRf hgKED331LoUor0YFMGvrn+ExLxFPTvODcTVTPEz8qujSHnlIcQoGrEW19JYadcSFxCY1 1VtQ== X-Gm-Message-State: AOAM531riIf5UE0SII9PnrCfYeJ8+vGTRKr6SxwP2vRBjdtHi5ONY7RA fYbtSvd5pM58HAuklAJHF5MoL31L X-Google-Smtp-Source: ABdhPJybWrhM3R/ACrIZWG9kksITZhOPX5xBygolaUkP1L+ogbfgi7mMntggCRr+Y6+0m51xGLPvQQ== X-Received: by 2002:aed:2d44:: with SMTP id h62mr8088823qtd.217.1590020683587; Wed, 20 May 2020 17:24:43 -0700 (PDT) Received: from archbookpro.localdomain (CPE18593399858a-CM185933998587.cpe.net.cable.rogers.com. [174.112.65.113]) by smtp.gmail.com with ESMTPSA id w67sm3539023qkb.102.2020.05.20.17.24.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2020 17:24:43 -0700 (PDT) From: Denton Liu To: Git Mailing List Cc: Junio C Hamano , Taylor Blau , Johannes Sixt , Eric Sunshine Subject: [PATCH v2 1/4] lib-submodule-update: add space after function name Date: Wed, 20 May 2020 20:24:15 -0400 Message-Id: X-Mailer: git-send-email 2.27.0.rc0.114.g141fe7d276 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 1dd17fc03e..122554acd6 100755 --- 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 ... @@ -629,7 +629,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 Thu May 21 00:24:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Denton Liu X-Patchwork-Id: 11561823 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 E73B060D for ; Thu, 21 May 2020 00:24:49 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id CFBF2205CB for ; Thu, 21 May 2020 00:24:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ZSDnai4D" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726860AbgEUAYr (ORCPT ); Wed, 20 May 2020 20:24:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36574 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726737AbgEUAYq (ORCPT ); Wed, 20 May 2020 20:24:46 -0400 Received: from mail-qk1-x744.google.com (mail-qk1-x744.google.com [IPv6:2607:f8b0:4864:20::744]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8FA86C061A0E for ; Wed, 20 May 2020 17:24:46 -0700 (PDT) Received: by mail-qk1-x744.google.com with SMTP id i5so5548267qkl.12 for ; Wed, 20 May 2020 17:24:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=EmRPTfGhGckUbxtxMFoydA96+ewIKgDpsTOGOR783Hk=; b=ZSDnai4D9UOV1GQRw4O2N5NdVecnzGAKlH5DgyKb2+SLZHPHxOTdU2BH3VtaCvx1tf wyHcs2L0FV9YrfYb5P5SDZ6DMRd7h+UTrsGWYST2fAYKZ3F1U8UlRLDqWItChhPPQ7uG qCMXDwufVP0Whg45yeCKoLjo+7EN/J2Bh/9uYrWutD04a/9Jx+R/5tiKOd2V3rRgc7Uy BQBQo5V4GFeX3HOw5gPLxFSlM5BUvQAsYiTTvA7ROFQCfe2cGZcI+uKLd538MvTRbKh1 BR0yAUtFxhxegM4E3XbKki/w2BseiE+EonBrgCBnLjrwnH/bNftL/dhadq57bscy1O1N nkGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=EmRPTfGhGckUbxtxMFoydA96+ewIKgDpsTOGOR783Hk=; b=JesaHm8PqJPyHn4eE95nTf7NttTARZV2kZU0vsvOMPr7ezla8OL6QYblLCcaD7LOoW 9vFf5dfb8tCNxX3itAPghIBKbSfbrCM04MWMOOeD8dreKR/xLLtGuIktYUyKk2rBBfWP DflWdaiRGUPr37DqdYICYKYT934CLFn/L9WP9tNs11YKnmodUjD3v7VrJ4NileDsyzdX ciQ/6Og+Xs6TxR67btZlFMbNetUnZuGJVMAInY4ozOOEvxVJs2peJTXWE+/8lpmfQZnN dN5kimH3FBlDiPmlXKxD61nSNStEE8E15AhF4Jqph/L3CboD4HRNA9H2UTaCFeu2P3MY +sSQ== X-Gm-Message-State: AOAM531slBSKtRRVZQX3OzzQQxu72+ACajtsqPaTP5ntgylKIqoy/0fV DSQJgWj1Fl8tw4o08dDlqYPOP/dl X-Google-Smtp-Source: ABdhPJzLjRReqjPSQfAcOnOjO79u9riN/P3oFaQ8UlzBciVHVx3EO8s501o9jlW9sflE6G4G5QYgfg== X-Received: by 2002:a37:8883:: with SMTP id k125mr701626qkd.14.1590020685486; Wed, 20 May 2020 17:24:45 -0700 (PDT) Received: from archbookpro.localdomain (CPE18593399858a-CM185933998587.cpe.net.cable.rogers.com. [174.112.65.113]) by smtp.gmail.com with ESMTPSA id w67sm3539023qkb.102.2020.05.20.17.24.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2020 17:24:44 -0700 (PDT) From: Denton Liu To: Git Mailing List Cc: Junio C Hamano , Taylor Blau , Johannes Sixt , Eric Sunshine Subject: [PATCH v2 2/4] lib-submodule-update: consolidate --recurse-submodules Date: Wed, 20 May 2020 20:24:16 -0400 Message-Id: <16d0a3eb9ac8dcda701433a9e67cde5103949432.1590019226.git.liu.denton@gmail.com> X-Mailer: git-send-email 2.27.0.rc0.114.g141fe7d276 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 122554acd6..bb36287803 100755 --- a/t/lib-submodule-update.sh +++ b/t/lib-submodule-update.sh @@ -630,7 +630,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 ... @@ -809,7 +809,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 @@ -927,7 +927,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 Thu May 21 00:24:17 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Denton Liu X-Patchwork-Id: 11561827 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 7175F60D for ; Thu, 21 May 2020 00:24:51 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 4F049205CB for ; Thu, 21 May 2020 00:24:51 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="o0JWmkna" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726870AbgEUAYt (ORCPT ); Wed, 20 May 2020 20:24:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36580 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726737AbgEUAYs (ORCPT ); Wed, 20 May 2020 20:24:48 -0400 Received: from mail-qt1-x841.google.com (mail-qt1-x841.google.com [IPv6:2607:f8b0:4864:20::841]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8A761C061A0E for ; Wed, 20 May 2020 17:24:48 -0700 (PDT) Received: by mail-qt1-x841.google.com with SMTP id x12so4158600qts.9 for ; Wed, 20 May 2020 17:24:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ip5oKsKpUrQobkSs+Jyt8W+r4cNNcH2/tx41EC6e8vQ=; b=o0JWmknaW+KpNt2m5qLepoWTRFS2OmB2jk0gxJoZBl/VoI7NPIpIkm4F73daLO8nse PM/SxkZWVF8IB1/kZUA1UeRvkaOfDr5PNgBVfcglbnh0oqQGU8qmKtbNiv3cnRsD0pRm YyjeEO0VcKvBXO9w31ZVmrWLcaE5kuuCzwZsqv5Jvx2yflrbeBvV6UH6mYHQr4TrqChq rTlT1lBSmeg6+36jcIqPX9RG+nZFM6MCVPV7ZA9Z2HTp76v4PyHUVWP8F6jIbmPr5ppo Krk+qXK3I6sC7v2zrycNFMW1Raz3UKF9+SXDGtL4ASRR6UzDbK0KL1MFD/luCqykDzJW m1SQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ip5oKsKpUrQobkSs+Jyt8W+r4cNNcH2/tx41EC6e8vQ=; b=I8EAWqyLqKXy6k/OomtqFoGs/8XAKaY8/wSZzCAt5siS9A9/cxzubCdk3Y+dleTTZT nSFriJ33DooF7S90PYNLqHFRKjNFKhuD/B3xtbud5XJRp6jazruYOrbx1X1OQ0jH5fKv 6hnlk9b1fAyJjLtq16UNvHATCzR9RDvxfDHwf/9yxRv+9D5YsSeO7xRmEIRLeVcikeq2 IP9dcMDvG0X1XAkuU+zJqBduL0QCBVj53rPmNaVatxtjzUFcUwlqfc3jJzMIPfCSJYTw QCwIMWzCZKi7SUTQ/ZZQx28kP3Ym10O6eUqu3QOcHSxY570fAbYxeUkFco+NxObNEQpI SV1A== X-Gm-Message-State: AOAM533J+B7noxMdbtnFM/8FLRWzO0xJibfAMJwCMkdomueVaDCRGYya jxFOjWsl1BG8ohCtm89+GXzCybOT X-Google-Smtp-Source: ABdhPJyRYKTpfx24HKhWZi1WcwyMdEy1G88+Q+KRoZ0esQxFOyDV5bELmn9+29qkgkwHzIs3OoqeTw== X-Received: by 2002:ac8:c09:: with SMTP id k9mr8528570qti.264.1590020687477; Wed, 20 May 2020 17:24:47 -0700 (PDT) Received: from archbookpro.localdomain (CPE18593399858a-CM185933998587.cpe.net.cable.rogers.com. [174.112.65.113]) by smtp.gmail.com with ESMTPSA id w67sm3539023qkb.102.2020.05.20.17.24.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2020 17:24:46 -0700 (PDT) From: Denton Liu To: Git Mailing List Cc: Junio C Hamano , Taylor Blau , Johannes Sixt , Eric Sunshine Subject: [PATCH v2 3/4] lib-submodule-update: prepend "git" to $command Date: Wed, 20 May 2020 20:24:17 -0400 Message-Id: <578bab6f1af351fd3721d56bea78abec6c9ae2f9.1590019226.git.liu.denton@gmail.com> X-Mailer: git-send-email 2.27.0.rc0.114.g141fe7d276 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 bb36287803..fb6c0f3d4f 100755 --- 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 a1cb9ff858..8741b665c9 100755 --- a/t/t7112-reset-submodule.sh +++ b/t/t7112-reset-submodule.sh @@ -13,10 +13,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 Thu May 21 00:24:18 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Denton Liu X-Patchwork-Id: 11561829 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 CBFD160D for ; Thu, 21 May 2020 00:24:52 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A8AB8205CB for ; Thu, 21 May 2020 00:24:52 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="LTizk0Wz" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726886AbgEUAYv (ORCPT ); Wed, 20 May 2020 20:24:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36586 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726737AbgEUAYu (ORCPT ); Wed, 20 May 2020 20:24:50 -0400 Received: from mail-qt1-x843.google.com (mail-qt1-x843.google.com [IPv6:2607:f8b0:4864:20::843]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 525D7C061A0E for ; Wed, 20 May 2020 17:24:50 -0700 (PDT) Received: by mail-qt1-x843.google.com with SMTP id t25so4224025qtc.0 for ; Wed, 20 May 2020 17:24:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=H+0hlYKuSJ3bI5x+Hs+Oun0jr5jAoOyysBhudmdYTcU=; b=LTizk0WzQR5jKFH1cF6o9yK5F0LlTfxL9wG82ze6by3B46SxFAQwOAOGZTFxHgI9Bl 2oUziH9jVMmmdIHAAcodhbhTdsMJS6EQEAMaEXK2KMrPS3ozDH+uzUwZiHlC7gfPIj+u qdUyY5WjScjfjM8Hq6RGdiZ+pB6n9TtM1JlsgQISg0AVGg9pj9/KKUGuAF3uVI5dFDh9 X+OzRJywhaVla/0WiWLzJh5KTmYaG6qW/SGSSgDMpBRm/IrBG+MC64p8qCaaByRSNqP/ QistHurdz/mtBCfJk72dBCtOmHf16wjZUyd+1Fp1pP6PCUs1Z/Qhs3oy+x3LORw1rESv /WDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=H+0hlYKuSJ3bI5x+Hs+Oun0jr5jAoOyysBhudmdYTcU=; b=C55lLD7gEsSrPlUACH/LHL4klhnRbM2S2cQWdrfAoyKMFQnXlITbW65+yQsSunG9XY pgVzHdiBozpHJqDHIHj4Bhv5m/UCVophzUeQgFSrE+FqeRFm7MM3IGtdM2a2aVLONPG8 TkmVSToQlSsOro4FViHRASzCj96J+kP//8d5w9F19tCFrBQMEvJrpsWUUw7P3/7Qlhra /S2kq8uv9UEeoNO7P266YoEQcxBsFuRn8FnnQXl53FJLSk6v5VOANUTkZxNBjwzOMwlu isEDhAHC/ha7mDdUd1C40j1KIrLpbrAVsxn16tPvBCWUdZUzaS6DpKLvaaD6esAs/FyX 7F4w== X-Gm-Message-State: AOAM532wBhB1Cf3FUtc+pxTO8XUk+lhuxXILACPydEVo4NY6YXIpV8nJ K9q/fEjSqVXJjla2CTh6fN61EjK3 X-Google-Smtp-Source: ABdhPJy3QFHvUElHAnqxMftf+Dnm7fuyrzKMBwwK6i8qcSsAxNIaLkcnLpTaBLCnjBjrXpc0pqLgQA== X-Received: by 2002:ac8:3782:: with SMTP id d2mr8128242qtc.74.1590020689068; Wed, 20 May 2020 17:24:49 -0700 (PDT) Received: from archbookpro.localdomain (CPE18593399858a-CM185933998587.cpe.net.cable.rogers.com. [174.112.65.113]) by smtp.gmail.com with ESMTPSA id w67sm3539023qkb.102.2020.05.20.17.24.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2020 17:24:48 -0700 (PDT) From: Denton Liu To: Git Mailing List Cc: Junio C Hamano , Taylor Blau , Johannes Sixt , Eric Sunshine Subject: [PATCH v2 4/4] lib-submodule-update: pass OVERWRITING_FAIL Date: Wed, 20 May 2020 20:24:18 -0400 Message-Id: <48598e3f9859dc525ec878cd7f3eaadee8bb61b1.1590019226.git.liu.denton@gmail.com> X-Mailer: git-send-email 2.27.0.rc0.114.g141fe7d276 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 in test_submodule_switch_common(). In the case where $command is a git command, test_submodule_switch_common() is called by one of test_submodule_switch() or test_submodule_forced_switch(). In those two functions, pass $command like this: test_submodule_switch_common "eval \$OVERWRITING_FAIL git $command" When $command is a helper function, the parent function calling test_submodule_switch_common() is test_submodule_switch_func(). For all test_submodule_switch_func() invocations, increase the granularity of the argument test helper function by prefixing the git invocation which is meant to fail with $OVERWRITING_FAIL like this: $OVERWRITING_FAIL git checkout "$1" This is useful because currently, when we run a test helper function, we just mark the whole thing as `test_must_fail`. However, it's possible that the helper function might fail earlier or later than expected due to an introduced bug. If this happens, then the test case will still report as passing but it should really be marked as failing since it didn't actually display the intended behaviour. 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. Signed-off-by: Denton Liu --- t/lib-submodule-update.sh | 33 +++++++++++++++++++++++++-------- t/t3426-rebase-submodule.sh | 4 ++-- t/t3513-revert-submodule.sh | 5 +++++ t/t3906-stash-submodule.sh | 6 +++++- t/t4137-apply-submodule.sh | 6 ++++-- t/t4255-am-submodule.sh | 6 ++++-- t/t5572-pull-submodule.sh | 8 ++++---- t/t6041-bisect-submodule.sh | 6 +++++- 8 files changed, 54 insertions(+), 20 deletions(-) diff --git a/t/lib-submodule-update.sh b/t/lib-submodule-update.sh index fb6c0f3d4f..a0274c03de 100755 --- 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,9 @@ 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 && + OVERWRITING_FAIL= && test_superproject_content origin/add_sub1 && test_submodule_content sub1 origin/add_sub1 ) @@ -456,7 +461,9 @@ 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 && + OVERWRITING_FAIL= && test_superproject_content origin/add_sub1 && test_git_directory_is_unchanged sub1 && test_submodule_content sub1 origin/add_sub1 @@ -470,7 +477,9 @@ 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 && + OVERWRITING_FAIL= && test_superproject_content origin/add_sub1 && test_submodule_content sub1 origin/add_sub1 ) @@ -484,7 +493,9 @@ 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 && + OVERWRITING_FAIL= && test_superproject_content origin/add_sub1 && test_git_directory_is_unchanged sub1 && test_submodule_content sub1 origin/add_sub1 @@ -559,6 +570,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 +584,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 +597,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 +605,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 +613,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..e41f0f2009 100755 --- a/t/t3513-revert-submodule.sh +++ b/t/t3513-revert-submodule.sh @@ -15,6 +15,11 @@ git_revert () { git status -su >expect && ls -1pR * >>expect && tar cf "$TRASH_DIRECTORY/tmp.tar" * && + $OVERWRITING_FAIL git checkout "$1" && + if test -n "$OVERWRITING_FAIL" + then + return + fi && git checkout "$1" && git revert HEAD && rm -rf * && diff --git a/t/t3906-stash-submodule.sh b/t/t3906-stash-submodule.sh index 6a7e801ca0..6e8dac9669 100755 --- a/t/t3906-stash-submodule.sh +++ b/t/t3906-stash-submodule.sh @@ -8,7 +8,11 @@ test_description='stash can handle submodules' git_stash () { git status -su >expect && ls -1pR * >>expect && - git read-tree -u -m "$1" && + $OVERWRITING_FAIL git read-tree -u -m "$1" && + if test -n "$OVERWRITING_FAIL" + then + return + fi && git stash && git status -su >actual && ls -1pR * >>actual && 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" && + $OVERWRITING_FAIL git checkout "$1" && + if test -n "$OVERWRITING_FAIL" + then + return + fi && echo "foo" >bar && git add bar && git commit -m "bisect bad" &&