Re: [PATCH v4] submodule: port subcommand 'set-branch' from shell to C
- From
Đoàn Trần Công Danh <congdanhqx@gmail.com>
- Date
- May 28, 2020, 12:21 UTC
- Message-ID
- <20200528122147.GA1983@danh.dev>
- In-Reply-To
- <20200527171358.GA22073@konoha>
On 2020-05-27 22:43:58+0530, Shourya Shukla <shouryashukla.oo@gmail.com> wrote:
Show 14 quoted lines
> On 24/05 12:19, Kaartic Sivaraam wrote: > > As '--quiet' in 'set-branch' is a no-op and is being accepted only for > > uniformity, I think it makes sense to use OPT_NOOP_NOARG instead of > > OPT__QUIET for specifying it, as suggested by Danh. > > > > Also, the description "suppress output for setting default tracking branch" > > doesn't seem to be valid anymore as we don't print anything when set-branch > > succeeds. > > I think it will all boil down to the consistency of all the subcommands. > Changing this would require making changes in various places: the C code > (obviously), the shell script (not only the cmd_set_branch() function > but the part for accepting user input as well) and the Documentation (I > might have maybe missed a couple of other changes to list here too). Its
I don't think this is a valid argument.
Using OPT_NOOP_NOARG doesn't require any change in shell script since the binary still accepts -q|--quiet.
The documentation of --quiet is still valid (since it doesn't print anything regardless)
The only necessary change in in that C code.
Show 10 quoted lines
> not that I don't want to do this, but it would add unnecessary changes
> don't you think? I would love it if others could weigh in their opinions
> too about this.
>
> > + git ${wt_prefix:+-C "$wt_prefix"} ${prefix:+--super-prefix "$prefix"} submodule--helper set-branch ${GIT_QUIET:+--quiet} ${branch:+--branch $branch} ${default:+--default} -- "$@"
>
> > Danh questioned whether '$branch' needs to be quoted here. I too think it
> > needs to be quoted unless I'm missing something.
>
> We want to do this because $branch is an argument right?We want to do this because we don't want to whitespace-split "$branch"
Let's say, for some reason, this command was run:
git submodule set-branch --branch "a-branch --branch another" a-submodule
This version will run:
git submodule--helper --branch a-branch --branch another a-submodule
Which will success if there's a branch "another" in the "a-submodule". While that command should fail because we don't accept refname with space.
-- Danh