On 10/27/2013 09:09 AM, Thomas Rast wrote: > Josh Triplett <josh@xxxxxxxxxxxxxxxx> writes: > >> On Sun, Oct 27, 2013 at 06:42:44AM +0100, Michael Haggerty wrote: >>> But I don't think that this feature should be given the "-f" short >>> option, as (a) -f often means "force"; (b) it will increase the >>> confusion with --fixup; (c) it just doesn't strike me as being likely to >>> be such a frequently-used option (though if this changes over time the >>> "-f" option could always be granted to it later). >> >> (a) -n often means --dry-run, but for commit it means --no-verify. >> Different commands have different options, and commit doesn't have a >> --force to abbreviate as -f. >> >> (b) If anything, I think the existence of a short option will make the >> distinction more obvious, since -f and --fixup are much less similar >> than --fixes and --fixup. Most users will never type --fixes, making >> confusion unlikely. >> >> (c) Short option letters tend to be first-come first-serve unless >> there's a strong reason to do otherwise. Why reserve 'f' for some >> hypothetical future option that doesn't exist yet? > > No, lately the direction in Git has been to avoid giving options a > one-letter shorthand until they have proven so useful that people using > it in the wild start to suggest that it should have one. > > See e.g. > > http://article.gmane.org/gmane.comp.version-control.git/233998 > http://article.gmane.org/gmane.comp.version-control.git/168748 > > A much better argument would be if it was already clear from the specs > laid out for Fixes that n% of the kernel commits will end up having this > footer, and thus kernel hackers will spend x amount of time spelling out > --fixes and/or confusing it with --fixup to much headache. > I assembled an overview table, which plots the long options of git commands by the short letters. Here it is: (Best viewed with a *large* screen and monospace font) Name\short | C | B | A | G | F | E | H | O | N | L | S | R | P | W | X | c | b | a | g | f | e | d | k | i | o | n | m | l | s | r | q | p | w | v | u | t | z | x | 3 | 2 status | | | | | | | | | | | | | | | | | branch | | | | | | | | | | | | short | | | | | verbose | untracked-files | | null | | | status help | | | | | | | | | | | | | | | | | | all | guides | | | | | info | | | man | | | | | | web | | | | | | | help show | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | quiet | | | | | | | | | show revert | | | | | | | | | | | | | | | strategy-option | | | | | | edit | | | | | no-commit | mainline | | signoff | | | | | | | | | | | revert pack-objects | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | quiet | | | | | | | | | pack-objects prune-packed | | | | | | | | | | | | | | | | | | | | | | | | | | dry-run | | | | | quiet | | | | | | | | | prune-packed replace | | | | | | | | | | | | | | | | | | | | force | | delete | | | | | | list | | | | | | | | | | | | replace show-ref | | | | | | | | | | | | | | | | | | | | | | dereference | | | | | | | hash | | quiet | | | | | | | | | show-ref tag | | | | | file | | | | | | | | | | | | | annotate | | force | | delete | | | | | message | list | sign | | | | | verify | local-user | | | | | tag gc | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | quiet | | | | | | | | | gc apply | | | | | | | | | | | | reverse | | | | | | | | | | | | | | | | | | | | | | verbose | | | | | 3way | apply fsck-objects | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | verbose | | | | | | fsck-objects archive | | | | | | | | | | | | | | | | | | | | | | | | | output | | | | | | | | | | | | | | | archive merge-file | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | quiet | stdout | | | | | | | | merge-file log | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | quiet | | | | | | | | | log cherry | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | verbose | | | | | | cherry checkout-index | | | | | | | | | | | | | | | | | | all | | force | | | | | | no-create | | | | | quiet | | | | index | | | | | checkout-index check-attr | | | | | | | | | | | | | | | | | | all | | | | | | | | | | | | | | | | | | | | | | check-attr reflog | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | quiet | | | | | | | | | reflog branch | | | | | | | | | | | | | | | | | | all | | force | | delete | | | | | move | create-reflog | | remotes | quiet | | | verbose | set-upstream-to | track | | | | branch ls-tree | | | | | | | | | | | | | | | | | | | | | | | | | | | | long | | | | | | | | | | | | ls-tree rm | | | | | | | | | | | | | | | | | | | | force | | | | | | dry-run | | | | | quiet | | | | | | | | | rm config | | | | | | | | | | | | | | | | | | | | file | edit | | | | | | | list | | | | | | | | | null | | | config remote | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | verbose | | | | | | remote init-db | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | quiet | | | | | | | | | init-db merge-base | | | | | | | | | | | | | | | | | | all | | | | | | | | | | | | | | | | | | | | | | merge-base for-each-ref | | | | | | | | | | | | | | | | | | | | | | | | | | | | | shell | | | perl | | | | | | | | for-each-ref clone | | | | | | | | | | | | | | | | config | branch | | | | | | | | origin | no-checkout | | local | shared | | quiet | | | verbose | upload-pack | | | | | clone count-objects | | | | | | | human-readable | | | | | | | | | | | | | | | | | | | | | | | | | | | verbose | | | | | | count-objects fsck | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | verbose | | | | | | fsck verify-pack | | | | | | | | | | | | | | | | | | | | | | | | | | | | | stat-only | | | | | verbose | | | | | | verify-pack update-server-info | | | | | | | | | | | | | | | | | | | | force | | | | | | | | | | | | | | | | | | | | update-server-info add | | | all | | | | | | intent-to-add | | | | | | | | | | | force | edit | | | interactive | | dry-run | | | | | | patch | | verbose | update | | | | | add whatchanged | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | quiet | | | | | | | | | whatchanged cherry-pick | | | | | | | | | | | | | | | strategy-option | | | | | | edit | | | | | no-commit | mainline | | signoff | | | | | | | | | | | cherry-pick read-tree | | | | | | | | | | | | | | | | | | | | | | | | | | dry-run | | | | | | | | verbose | | | | | | read-tree format-patch | | | | | | | | | no-numbered | | | | | | | | | | | | | | keep-subject | | output-directory | numbered | | | signoff | | quiet | no-stat | | reroll-count | | | | | | format-patch stage | | | all | | | | | | intent-to-add | | | | | | | | | | | force | edit | | | interactive | | dry-run | | | | | | patch | | verbose | update | | | | | stage reset | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | quiet | patch | | | | | | | | reset check-ignore | | | | | | | | | | | | | | | | | | | | | | | | | | non-matching | | | | | quiet | | | verbose | | | | | | check-ignore grep | context | before-context | after-context | basic-regexp | fixed-strings | extended-regexp | | open-files-in-pager | | files-without-match | | | perl-regexp | function-context | | count | | text | | | | | | ignore-case | | line-number | | files-with-matches | | | quiet | show-function | word-regexp | invert-match | | | null | | | grep prune | | | | | | | | | | | | | | | | | | | | | | | | | | dry-run | | | | | | | | verbose | | | | | | prune symbolic-ref | | | | | | | | | | | | | | | | | | | | | | delete | | | | | | | | | quiet | | | | | | | | | symbolic-ref checkout | | | | | | | | | | | | | | | | | | | | force | | | | | | | merge | | | | quiet | patch | | | | track | | | theirs | ours checkout repack | | | | | | | | | | | | | | | | | | | | | | | | | | | | local | | | quiet | | | | | | | | | repack init | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | quiet | | | | | | | | | init merge | | | | | | | | | | | gpg-sign | | | | strategy-option | | | | | | edit | | | | | | message | | strategy | | quiet | | | verbose | | | | | | merge mv | | | | | | | | | | | | | | | | | | | | force | | | | | | dry-run | | | | | | | | verbose | | | | | | mv ls-files | | | | | | | | | | | | | | | exclude-from | cached | | | | | | deleted | killed | ignored | others | | modified | | stage | | | | | | unmerged | | | exclude | | ls-files clean | | | | | | | | | | | | | | | | | | | | force | exclude | | | interactive | | dry-run | | | | | quiet | | | | | | | | | clean show-branch | | | | | | | | | | | | | | | | | | all | reflog | | | | | | | | | | | remotes | | | | | | | | | | show-branch push | | | | | | | | | | | | | | | | | | | | force | | | | | | dry-run | | | | | quiet | | | verbose | set-upstream | | | | | push commit | reuse-message | | | | file | | | | | | gpg-sign | | | | | reedit-message | | all | | | edit | | | include | only | no-verify | message | | signoff | | quiet | patch | | verbose | untracked-files | template | null | | | commit verify-tag | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | verbose | | | | | | verify-tag fmt-merge-msg | | | | | file | | | | | | | | | | | | | | | | | | | | | | message | | | | | | | | | | | | | fmt-merge-msg fetch | | | | | | | | | | | | | | | | | | append | | force | | | keep | | | | multiple | | | | quiet | prune | | verbose | update-head-ok | tags | | | | fetch (In case thunderbird messes it up, here it is again http://pastebin.com/raw.php?i=JBci2Krx) As you can see, f is always --force except for git-config, where it is --file -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html