threads / bug / 59980

Bug Report - Git does not require a space between shorthand flags and the commit-message

Subject: Bug Report - Git does not require a space between shorthand flags and the commit-message

## tl;dr

2 messages between Jul 13, 2023 and Jul 14, 2023.

replies: 1people: 2as markdown or json

uxecw· Jul 13, 2023, 13:04 UTC · lore

Thank you for filling out a Git bug report! Please answer the following questions to help us understand your issue.

What did you do before the bug happened? (Steps to reproduce your issue) Rebasing. I entered `git commit —amend` (one hypen istead of two) accidently and it passed as defacto `git commit —all —message "end"`. I think because of the missing space git should have rejected the given input.

What did you expect to happen? (Expected behavior) Input should have been rejected

What happened instead? (Actual behavior) `git commit —all —message "end"`

What's different between what you expected and what actually happened?
Anything else you want to add:

Please review the rest of the bug report below. You can delete any lines you don't wish to share.

[System Info] git version: git version 2.34.1 cpu: x86_64 no commit associated with this build sizeof-long: 8 sizeof-size_t: 8 shell-path: /bin/sh uname: Linux 5.19.0-46-generic #47~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Jun 21 15:35:31 UTC 2 x86_64 compiler info: gnuc: 11.3 libc info: glibc: 2.35 $SHELL (typically, interactive shell): /bin/bash

[Enabled Hooks] not run from a git repository - no hooks to show

brian m. carlson· Jul 14, 2023, 00:48 UTC · re: uxecw · lore

Re: Bug Report - Git does not require a space between shorthand flags and the commit-message

On 2023-07-13 at 13:04:37, uxecw wrote:
Show 15 quoted lines
> Thank you for filling out a Git bug report!
> Please answer the following questions to help us understand your issue.
> 
> What did you do before the bug happened? (Steps to reproduce your issue)
> Rebasing.
> I entered `git commit —amend` (one hypen istead of two) accidently and it
> passed as defacto `git commit —all —message "end"`.
> I think because of the missing space git should have rejected the given
> input.
> 
> What did you expect to happen? (Expected behavior)
> Input should have been rejected
> 
> What happened instead? (Actual behavior)
> `git commit —all —message "end"`

I believe this is standard Unix behaviour. One can combine single-character options, including a final single-character option that takes an argument, and the argument can be appended to the option.

For example, I frequently type "git commit -svS", and I could well type "git commit -svS0223b187" (my OpenPGP key ID). That also works similarly with OpenSSH: the command "ssh -CoUser=foo server" works just fine.

So I think it's best for Git to preserve the existing behaviour since it's standard for other tools as well (and, I believe, the POSIX-mandated behaviour).

-- 
brian m. carlson (he/him or they/them)
Toronto, Ontario, CA

← back to recent threads