Re: Feature request: Add --no-edit to git tag command
- Date: Wed, 3 Apr 2019 20:26:06 -0700
- From: Taylor Blau <me@xxxxxxxxxxxx>
- Subject: Re: Feature request: Add --no-edit to git tag command
On Wed, Apr 03, 2019 at 09:57:44PM -0400, Jeff King wrote:
> On Wed, Apr 03, 2019 at 09:38:02AM -0500, Robert Dailey wrote:
> > Similar to git commit, it would be nice to have a --no-edit option for
> > git tag. Use case is when I force-recreate a tag:
> > $ git tag -af 1.0 123abc
> > An editor will be prompted with the previous annotated tag message. I
> > would like to add --no-edit to instruct it to use any previously
> > provided message and without prompting the editor:
> > $ git tag --no-edit -af 1.0 123abc
> Yeah, that sounds like a good idea.
I think that the implement is a little different than "add a --no-edit"
flag, though. 'git tag' already has a OPT_BOOL for '--edit', which means
that '--no-edit' exists, too.
But, when we look and see how the edit option is passed around, we find
that the check whether or not to launch the editor (again, in
builtin/tag.c within 'create_tag()') is:
if (!opt->message_given || opt->use_editor)
So, it's not that we didn't take '--no-edit', it's that we didn't get a
_message_, so we'll open the editor to get one (even if '--no-edit' was
This makes me think that we should do two things:
1. Make !opt->message_give && !opt->use_editor an invalid invocation.
If I (1) didn't give a message but I did (2) give '--no-edit', I'd
expect a complaint, not an editor window.
2. Then, do what Robert suggests, which is to "make opt->message_given
true", by re-using the previous tag's message.
> I think it wouldn't be very hard to implement, either. Maybe a good
> starter project or #leftoverbits for somebody.
Maybe. I think that it's made a little more complicated by the above,
but it's certainly doable. Maybe good for GSoC?