git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] git-submodule.sh: accept verbose flag in cmd_update to be non-quiet

From
Stefan Beller <sbeller@google.com>
Date
Aug 14, 2018, 18:22 UTC
Message-ID
<20180814182202.59442-1-sbeller@google.com>
In-Reply-To
<929572FA-6B1D-4EC7-825B-93B96053A82C@gmx.de>

In a56771a668d (builtin/pull: respect verbosity settings in submodules, 2018-01-25), we made sure to pass on both quiet and verbose flag from builtin/pull.c to the submodule shell script. However git-submodule doesn't understand a verbose flag, which results in a bug when invoking

  git pull --recurse-submodules -v [...]
There are a few different approaches to fix this bug:
1) rewrite 'argv_push_verbosity' or its caller in builtin/pull.c to
   cap opt_verbosity at 0. Then 'argv_push_verbosity' would only add
   '-q' if any.
2) Have a flag in 'argv_push_verbosity' that specifies if we allow adding
  -q or -v (or both).
3) Add -v to git-submodule.sh and make it a no-op

(1) seems like a maintenance burden: What if we add code after the submodule operations or move submodule operations higher up, then we have altered the opt_verbosity setting further down the line in builtin/pull.c.

(2) seems like it could work reasonably well without more regressions
(3) seems easiest to implement as well as actually is a feature with the
    last-one-wins rule of passing flags to Git commands.
Signed-off-by: Stefan Beller <sbeller@google.com>
---
On Tue, Aug 14, 2018 at 10:54 AM Jochen Kühner <jochen.kuehner@gmx.de> wrote:
Show 26 quoted lines
>
> If I set 
> git config --global submodule.recurse true
> and run git via:
> git pull --progress -v --no-rebase "origin"
> The command will fail with following output (Errorlevel is 1)
> Fetching submodule submodules/tstemplates
> From http://10.0.102.194:7990/scm/mcc/tstemplates
> = [up to date]      feature/robin -> origin/feature/robin
> = [up to date]      master        -> origin/master
> Already up to date.
> usage: git submodule [--quiet] add [-b <branch>] [-f|--force] [--name <name>] [--reference <repository>] [--] <repository> [<path>]
>    or: git submodule [--quiet] status [--cached] [--recursive] [--] [<path>...]
>    or: git submodule [--quiet] init [--] [<path>...]
>    or: git submodule [--quiet] deinit [-f|--force] (--all| [--] <path>...)
>    or: git submodule [--quiet] update [--init] [--remote] [-N|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] [--[no-]recommend-shallow] [--reference <repository>] [--recursive] [--] [<path>...]
>    or: git submodule [--quiet] summary [--cached|--files] [--summary-limit <n>] [commit] [--] [<path>...]
>    or: git submodule [--quiet] foreach [--recursive] <command>
>    or: git submodule [--quiet] sync [--recursive] [--] [<path>...]
>    or: git submodule [--quiet] absorbgitdirs [--] [<path>...]
>
> seams that the “verbose” parameter “-v” is also sent to “git submodules” wich does not support it.
>
> If I remove “-v” it will work.
>
> Problem is, I use TortoiseGit, wich will automatically create this command!
 git-submodule.sh | 3 +++
 1 file changed, 3 insertions(+)
diff --git a/git-submodule.sh b/git-submodule.sh
index 8b5ad59bdee..f7fd80345cd 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -438,6 +438,9 @@ cmd_update()
 		-q|--quiet)
 			GIT_QUIET=1
 			;;
+		-v)
+			GIT_QUIET=0
+			;;
 		--progress)
 			progress=1
 			;;
-- 
2.18.0.265.g16de1b435c9.dirty
Previous: Jochen KühnerNext: Jonathan Nieder
Message 2 of 5 in “Bug with Git submodules and submodule.recurse setting”
  1. Jochen KühnerAug 14, 2018
  2. git-submodule.sh: accept verbose flag in cmd_update to be non-quietStefan Beller, Aug 14, 2018
  3. Jonathan NiederAug 14, 2018
  4. Aw: [PATCH] git-submodule.sh: accept verbose flag in cmd_update to be non-quietJochen Kühner, Aug 15, 2018
  5. Stefan BellerAug 15, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.