threads / patch / 52320

patchdoc: Correct man page for the SHAs reported by 'submodule status'

Subject: [PATCH 0/1] doc: Correct man page for the SHAs reported by 'submodule status'

## tl;dr

6 messages between Nov 22, 2019 and Nov 23, 2019. Diffs are folded; open one to read it.

replies: 5people: 3as markdown or json

Manish Goregaokar via GitGitGadget· Nov 22, 2019, 23:11 UTC · lore

The documentation is currently incorrect, it talks about the checked out SHAs when git submodule status actually reports the superproject's tracked SHAs.

It's possible (but unlikely IMO) that we should change the behavior of the tool to match the documentation. A flag for this behavior may be useful.

Manish Goregaokar (1):
  Documentation: Correct man page for the SHAs reported by 'submodule
    status'
 Documentation/git-submodule.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
base-commit: 5fa0f5238b0cd46cfe7f6fa76c3f526ea98148d9
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-470%2FManishearth%2Fsubmodule-sha-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-470/Manishearth/submodule-sha-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/470
-- 
gitgitgadget
Manish Goregaokar via GitGitGadget· Nov 22, 2019, 23:11 UTC · re: Manish Goregaokar via GitGitGadget · lore

[PATCH 1/1] Documentation: Correct man page for the SHAs reported by 'submodule status'

From: Manish Goregaokar <manishsmail@gmail.com>

'git submodule status' reports the SHAs expected by the parent project, not the SHAs that are actually checked out in the submodule. Checking out a new SHA in a submodule will not change the output of 'git submodule status' until you 'git add' the submodule.

Signed-off-by: Manish Goregaokar <manishsmail@gmail.com>
---
 Documentation/git-submodule.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
Show changes to Documentation/git-submodule.txt +2 −2
diff --git a/Documentation/git-submodule.txt b/Documentation/git-submodule.txt
index 0ed5c24dc1..31e089454a 100644
--- a/Documentation/git-submodule.txt
+++ b/Documentation/git-submodule.txt
@@ -72,8 +72,8 @@ git-submodule will correctly locate the submodule using the relative
 URL in `.gitmodules`.
 
 status [--cached] [--recursive] [--] [<path>...]::
-	Show the status of the submodules. This will print the SHA-1 of the
-	currently checked out commit for each submodule, along with the
+	Show the status of the submodules. This will print the SHA-1
+	recorded in the superproject for each submodule, along with the
 	submodule path and the output of 'git describe' for the
 	SHA-1. Each SHA-1 will possibly be prefixed with `-` if the submodule is
 	not initialized, `+` if the currently checked out submodule commit
-- 
gitgitgadget
Junio C Hamano· Nov 23, 2019, 01:21 UTC · re: Manish Goregaokar via GitGitGadget · lore

Re: [PATCH 1/1] Documentation: Correct man page for the SHAs reported by 'submodule status'

"Manish Goregaokar via GitGitGadget" <gitgitgadget@gmail.com> writes:

Show 25 quoted lines
> From: Manish Goregaokar <manishsmail@gmail.com>
>
> 'git submodule status' reports the SHAs expected by the parent project,
> not the SHAs that are actually checked out in the submodule. Checking
> out a new SHA in a submodule will not change the output of 'git
> submodule status' until you 'git add' the submodule.
>
> Signed-off-by: Manish Goregaokar <manishsmail@gmail.com>
> ---
>  Documentation/git-submodule.txt | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/git-submodule.txt b/Documentation/git-submodule.txt
> index 0ed5c24dc1..31e089454a 100644
> --- a/Documentation/git-submodule.txt
> +++ b/Documentation/git-submodule.txt
> @@ -72,8 +72,8 @@ git-submodule will correctly locate the submodule using the relative
>  URL in `.gitmodules`.
>  
>  status [--cached] [--recursive] [--] [<path>...]::
> -	Show the status of the submodules. This will print the SHA-1 of the
> -	currently checked out commit for each submodule, along with the
> +	Show the status of the submodules. This will print the SHA-1
> +	recorded in the superproject for each submodule, along with the
>  	submodule path and the output of 'git describe' for the

Am I mistaken to say that neither the old or the new description is correct, depending on the use (or non-use) of the --cached option?

	... print the object name of the commit that is currently
	checked out, or the commit that is recorded in the
	superproject if `--cached` option is given, for each
	submodule, ...
perhaps?
Manish Goregaokar· Nov 23, 2019, 05:46 UTC · re: Junio C Hamano · lore

Re: [PATCH 1/1] Documentation: Correct man page for the SHAs reported by 'submodule status'

Turns out that I've found a bug! I was getting this behavior because it wasn't detecting that submodules were modified. I'll submit a patch shortly, but first fix this one since the documentation should be fixed regardless.

Thanks, -Manish Goregaokar

-Manish Goregaokar
On Fri, Nov 22, 2019 at 5:21 PM Junio C Hamano <gitster@pobox.com> wrote:
Show 39 quoted lines
>
> "Manish Goregaokar via GitGitGadget" <gitgitgadget@gmail.com>
> writes:
>
> > From: Manish Goregaokar <manishsmail@gmail.com>
> >
> > 'git submodule status' reports the SHAs expected by the parent project,
> > not the SHAs that are actually checked out in the submodule. Checking
> > out a new SHA in a submodule will not change the output of 'git
> > submodule status' until you 'git add' the submodule.
> >
> > Signed-off-by: Manish Goregaokar <manishsmail@gmail.com>
> > ---
> >  Documentation/git-submodule.txt | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/Documentation/git-submodule.txt b/Documentation/git-submodule.txt
> > index 0ed5c24dc1..31e089454a 100644
> > --- a/Documentation/git-submodule.txt
> > +++ b/Documentation/git-submodule.txt
> > @@ -72,8 +72,8 @@ git-submodule will correctly locate the submodule using the relative
> >  URL in `.gitmodules`.
> >
> >  status [--cached] [--recursive] [--] [<path>...]::
> > -     Show the status of the submodules. This will print the SHA-1 of the
> > -     currently checked out commit for each submodule, along with the
> > +     Show the status of the submodules. This will print the SHA-1
> > +     recorded in the superproject for each submodule, along with the
> >       submodule path and the output of 'git describe' for the
>
> Am I mistaken to say that neither the old or the new description is
> correct, depending on the use (or non-use) of the --cached option?
>
>         ... print the object name of the commit that is currently
>         checked out, or the commit that is recorded in the
>         superproject if `--cached` option is given, for each
>         submodule, ...
>
> perhaps?
Manish Goregaokar via GitGitGadget· Nov 23, 2019, 05:54 UTC · re: Manish Goregaokar via GitGitGadget · lore

[PATCH v2 0/1] doc: Document 'git submodule status --cached'

It's currently undocumented, and should be mentioned.

I previously thought that git submodule status was displaying the behaviors of git submodule status --cached and was thus incorrectly documented, but that wasn't actually the case: turns out that git submodule status just doesn't work when not in the root directory.

Manish Goregaokar (1):
  doc: Document 'git submodule status --cached'
 Documentation/git-submodule.txt | 3 +++
 1 file changed, 3 insertions(+)
base-commit: 5fa0f5238b0cd46cfe7f6fa76c3f526ea98148d9
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-470%2FManishearth%2Fsubmodule-sha-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-470/Manishearth/submodule-sha-v2
Pull-Request: https://github.com/gitgitgadget/git/pull/470
Range-diff vs v1:
 1:  0eabb27ba0 ! 1:  3168924c3c Documentation: Correct man page for the SHAs reported by 'submodule status'
     @@ -1,11 +1,9 @@
      Author: Manish Goregaokar <manishsmail@gmail.com>
      
     -    Documentation: Correct man page for the SHAs reported by 'submodule status'
     +    doc: Document 'git submodule status --cached'
      
     -    'git submodule status' reports the SHAs expected by the parent project,
     -    not the SHAs that are actually checked out in the submodule. Checking
     -    out a new SHA in a submodule will not change the output of 'git
     -    submodule status' until you 'git add' the submodule.
     +    'git submodule status --cached' reports the SHAs expected by the parent project,
     +    instead of the SHAs that are actually checked out in the submodule.
      
          Signed-off-by: Manish Goregaokar <manishsmail@gmail.com>
      
     @@ -13,13 +11,12 @@
       --- a/Documentation/git-submodule.txt
       +++ b/Documentation/git-submodule.txt
      @@
     - URL in `.gitmodules`.
     - 
     - status [--cached] [--recursive] [--] [<path>...]::
     --	Show the status of the submodules. This will print the SHA-1 of the
     --	currently checked out commit for each submodule, along with the
     -+	Show the status of the submodules. This will print the SHA-1
     -+	recorded in the superproject for each submodule, along with the
     - 	submodule path and the output of 'git describe' for the
     - 	SHA-1. Each SHA-1 will possibly be prefixed with `-` if the submodule is
     - 	not initialized, `+` if the currently checked out submodule commit
     + 	does not match the SHA-1 found in the index of the containing
     + 	repository and `U` if the submodule has merge conflicts.
     + +
     ++If `--cached` is specified, this command will instead print the SHA-1
     ++recorded in the superproject for each submodule.
     +++
     + If `--recursive` is specified, this command will recurse into nested
     + submodules, and show their status as well.
     + +
-- 
gitgitgadget
Manish Goregaokar via GitGitGadget· Nov 23, 2019, 05:54 UTC · re: Manish Goregaokar via GitGitGadget · lore

[PATCH v2 1/1] doc: Document 'git submodule status --cached'

From: Manish Goregaokar <manishsmail@gmail.com>

'git submodule status --cached' reports the SHAs expected by the parent project, instead of the SHAs that are actually checked out in the submodule.

Signed-off-by: Manish Goregaokar <manishsmail@gmail.com>
---
 Documentation/git-submodule.txt | 3 +++
 1 file changed, 3 insertions(+)
Show changes to Documentation/git-submodule.txt +3 −0
diff --git a/Documentation/git-submodule.txt b/Documentation/git-submodule.txt
index 0ed5c24dc1..f05c2b92fb 100644
--- a/Documentation/git-submodule.txt
+++ b/Documentation/git-submodule.txt
@@ -80,6 +80,9 @@ status [--cached] [--recursive] [--] [<path>...]::
 	does not match the SHA-1 found in the index of the containing
 	repository and `U` if the submodule has merge conflicts.
 +
+If `--cached` is specified, this command will instead print the SHA-1
+recorded in the superproject for each submodule.
++
 If `--recursive` is specified, this command will recurse into nested
 submodules, and show their status as well.
 +
-- 
gitgitgadget

← back to recent threads