From: Stefan Beller <sbeller@google.com>
To: Brandon Williams <bmwill@google.com>
Cc: David Turner <David.Turner@twosigma.com>,
"git@vger.kernel.org" <git@vger.kernel.org>,
"brian m. carlson" <sandals@crustytoothpaste.net>,
Heiko Voigt <hvoigt@hvoigt.net>,
Junio C Hamano <gitster@pobox.com>
Subject: Re: [RFC PATCHv2 17/17] checkout: add config option to recurse into submodules by default
Date: Mon, 5 Dec 2016 14:23:25 -0800 [thread overview]
Message-ID: <CAGZ79kaMXmNUaUCZJaTrcodAoSBPSxXr5JPrZGQeg=m-HrN11w@mail.gmail.com> (raw)
In-Reply-To: <20161205192918.GB68588@google.com>
On Mon, Dec 5, 2016 at 11:29 AM, Brandon Williams <bmwill@google.com> wrote:
> On 12/02, Stefan Beller wrote:
>> +test_expect_success 'option checkout.recurseSubmodules updates submodule' '
>> + test_config checkout.recurseSubmodules 1 &&
>> + git checkout base &&
>> + git checkout -b advanced-base &&
>> + git -C submodule commit --allow-empty -m "empty commit" &&
>> + git add submodule &&
>> + git commit -m "advance submodule" &&
>> + git checkout base &&
>> + git diff-files --quiet &&
>> + git diff-index --quiet --cached base &&
>> + git checkout advanced-base &&
>> + git diff-files --quiet &&
>> + git diff-index --quiet --cached advanced-base &&
>> + git checkout --recurse-submodules base
>> +'
>> +
>
> This test doesn't look like it looks into the submodule to see if the
> submodule has indeed changed. Unless diff-index and diff-files recurse
> into the submodules?
I took the code from Jens once upon a time. Rereading the code, I agree it is
not obvious how this checks the submodule state.
However `git diff-files --quiet` is perfectly fine, as
we have submodule support by default via:
Omitting the --submodule option or specifying --submodule=short,
uses the short format. This format just shows the names of the commits
at the beginning and end of the range.
and then we turn it into an exit code via
--quiet
Disable all output of the program. Implies --exit-code.
--exit-code
Make the program exit with codes similar to diff(1).
That is, it exits with 1 if there were differences and 0 means no differences.
Same for diff-index.
The main purpose of this specific test is to have checkout.recurseSubmodules
"to just make it work" without having to give --recurse-submodules manually.
All the other tests with the manual --recurse-submodules should test for
correctness of the behavior within the submodule.
So maybe I'll need to rewrite submodule_creation_must_succeed() in the previous
patch to be more obvious. (Well that already has some tests for
files/directories
in there, so it is a little more.)
But to be sure we can also add tests here that look more into the submodule.
I am thinking of "{new,old}_sub_sha1=$(git -C submodule rev-parse HEAD)" and
comparing them?
next prev parent reply other threads:[~2016-12-05 22:23 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-03 0:30 [RFC PATCHv2 00/17] Checkout aware of Submodules! Stefan Beller
2016-12-03 0:30 ` [RFC PATCHv2 01/17] submodule.h: add extern keyword to functions Stefan Beller
2016-12-03 0:30 ` [RFC PATCHv2 02/17] submodule: modernize ok_to_remove_submodule to use argv_array Stefan Beller
2016-12-03 0:30 ` [RFC PATCHv2 03/17] update submodules: move up prepare_submodule_repo_env Stefan Beller
2016-12-03 0:30 ` [RFC PATCHv2 04/17] update submodules: add is_submodule_populated Stefan Beller
2016-12-03 0:30 ` [RFC PATCHv2 05/17] update submodules: add submodule config parsing Stefan Beller
2016-12-03 0:30 ` [RFC PATCHv2 06/17] update submodules: add a config option to determine if submodules are updated Stefan Beller
2016-12-03 0:30 ` [RFC PATCHv2 07/17] update submodules: introduce submodule_is_interesting Stefan Beller
2016-12-03 0:30 ` [RFC PATCHv2 08/17] update submodules: add depopulate_submodule Stefan Beller
2016-12-05 23:37 ` David Turner
2016-12-06 0:18 ` Stefan Beller
2016-12-03 0:30 ` [RFC PATCHv2 09/17] update submodules: add scheduling to update submodules Stefan Beller
2016-12-05 23:37 ` David Turner
2016-12-05 23:54 ` Stefan Beller
2016-12-03 0:30 ` [RFC PATCHv2 10/17] update submodules: is_submodule_checkout_safe Stefan Beller
2016-12-03 0:30 ` [RFC PATCHv2 11/17] unpack-trees: teach verify_clean_submodule to inspect submodules Stefan Beller
2016-12-03 0:30 ` [RFC PATCHv2 12/17] unpack-trees: remove submodule contents if interesting Stefan Beller
2016-12-03 0:30 ` [RFC PATCHv2 13/17] entry: write_entry to write populate submodules Stefan Beller
2016-12-03 0:30 ` [RFC PATCHv2 14/17] submodule: teach unpack_trees() to update submodules Stefan Beller
2016-12-05 23:37 ` David Turner
2016-12-03 0:30 ` [RFC PATCHv2 15/17] checkout: recurse into submodules if asked to Stefan Beller
2016-12-05 19:25 ` Brandon Williams
2016-12-05 19:30 ` Stefan Beller
2016-12-05 19:31 ` Brandon Williams
2016-12-05 23:36 ` David Turner
2016-12-03 0:30 ` [RFC PATCHv2 16/17] completion: add '--recurse-submodules' to checkout Stefan Beller
2016-12-03 0:30 ` [RFC PATCHv2 17/17] checkout: add config option to recurse into submodules by default Stefan Beller
2016-12-05 19:29 ` Brandon Williams
2016-12-05 22:23 ` Stefan Beller [this message]
2016-12-05 22:26 ` Brandon Williams
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='CAGZ79kaMXmNUaUCZJaTrcodAoSBPSxXr5JPrZGQeg=m-HrN11w@mail.gmail.com' \
--to=sbeller@google.com \
--cc=David.Turner@twosigma.com \
--cc=bmwill@google.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=hvoigt@hvoigt.net \
--cc=sandals@crustytoothpaste.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).