All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Kevin Day <toasty@dragondata.com>
Cc: git@vger.kernel.org
Subject: Re: Commands using -h as an option don't work consistently
Date: Wed, 29 May 2024 20:23:27 -0700	[thread overview]
Message-ID: <xmqq34q0rnio.fsf@gitster.g> (raw)
In-Reply-To: <0F971F6E-6462-4E0D-880B-8FD67F42A782@dragondata.com> (Kevin Day's message of "Wed, 29 May 2024 17:40:31 -0500")

Kevin Day <toasty@dragondata.com> writes:

>>> 1) Fix -h handling and add ignores and fixes where possible to the
>>> failing tests and try to not use -h as an option for anything new.
>> 
>> I do not quite understand the former half, but "try not to use -h
>> for new things" is a very good idea and it is pretty much what we
>> have been doing.
>
> Sorry, let me rephrase that.  1) Apply the fix I was proposing to make
> it so that the command's -h usage has precedence over showing the
> usage. Any tests that break because of that which don't have a
> plausible fix mark as "# TODO known breakage" like several other
> commands have because they aren't generating usage output correctly
> for one reason or another.

Ah, then no.

I am afraid that it is a non starter.  "git ls-remote -h" would then
stop breaking existing users' long established expectation, i.e.,
"for any git subcommand 'cmd', you can say 'git cmd -h' to get the
short help".  We need to design a good transition plan to wean
existing users off of that expectation.

For example, we _could_ introduce "-?" to parse-options _now_, and
mark the use of "-h" as deprecated.  When the special casing of "-h"
parse-options has triggers, the user will be reminded that the "-h"
support will have a limited shelf life, and they are urged to
retrain their fingers and update their scripts to use "-?", possibly
with "advice.shorthelpdeprecationnotice" configuration knob that
helps ease the transition.  We would update the t/ scripts to use
"-?" at the same time, but would probably need to keep tests that
use "-h" to ensure that the warning triggers.

We will keep things that way for a while, and once we get the users'
expectation updated so that they think 'git cmd -?' (not 'git cmd
-h') is _the_ way to get the short help for any git subcommand.

At a major version boundary, e.g., Git 3.0, we could remove the
special casing of '-h' from parse-options, and "git ls-remote -h"
will start working the same way as "git ls-remote -h origin" all of
a sudden, but nobody remembers "git ls-remote -h" used to be the way
to get short help for the command any more by that time, so nobody
will get hurt by such a flipping of the behaviour.


  reply	other threads:[~2024-05-30  3:23 UTC|newest]

Thread overview: 97+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-29 22:03 Commands using -h as an option don't work consistently Kevin Day
2024-05-29 22:22 ` Junio C Hamano
2024-05-29 22:40   ` Kevin Day
2024-05-30  3:23     ` Junio C Hamano [this message]
2024-06-03 18:33       ` Junio C Hamano
2024-06-03 20:05         ` [PATCH 0/3] Branches are branches and not heads Junio C Hamano
2024-06-03 20:05           ` [PATCH 1/3] refs: call branches branches Junio C Hamano
2024-06-03 21:32             ` Eric Sunshine
2024-06-03 20:05           ` [PATCH 2/3] ls-remote: introduce --branches and deprecate --heads Junio C Hamano
2024-06-03 21:30             ` Rubén Justo
2024-06-03 21:42               ` Eric Sunshine
2024-06-03 21:48                 ` Junio C Hamano
2024-06-03 20:05           ` [PATCH 3/3] show-ref: " Junio C Hamano
2024-06-03 21:32           ` [PATCH 0/3] Branches are branches and not heads Rubén Justo
2024-06-04  7:56             ` Patrick Steinhardt
2024-06-04 22:01           ` [PATCH v2 " Junio C Hamano
2024-06-04 22:01             ` [PATCH v2 1/3] refs: call branches branches Junio C Hamano
2024-06-04 22:01             ` [PATCH v2 2/3] ls-remote: introduce --branches and deprecate --heads Junio C Hamano
2024-06-06  9:39               ` Patrick Steinhardt
2024-06-06 15:18                 ` Junio C Hamano
2024-06-04 22:01             ` [PATCH v2 3/3] show-ref: " Junio C Hamano
2024-06-14 19:32               ` Elijah Newren
2024-06-14 21:21                 ` Junio C Hamano
2024-06-14 21:34                   ` Elijah Newren
2024-06-14 21:42                     ` Elijah Newren
2024-06-14 22:46                       ` Junio C Hamano
2024-06-06  9:39             ` [PATCH v2 0/3] Branches are branches and not heads Patrick Steinhardt
  -- strict thread matches above, loose matches on Subject: below --
2024-05-07  8:27 [RFC PATCH] docs: document upcoming breaking changes Patrick Steinhardt
2024-05-07 10:38 ` Johannes Schindelin
2024-05-08 13:55   ` Patrick Steinhardt
2024-05-07 22:02 ` Junio C Hamano
2024-05-08 13:54   ` Patrick Steinhardt
2024-05-08 14:58     ` Junio C Hamano
2024-05-08 15:59     ` Dragan Simic
2024-05-10 11:36       ` Patrick Steinhardt
2024-05-10 12:43         ` Dragan Simic
2024-05-08 13:15 ` Phillip Wood
2024-05-08 13:55   ` Patrick Steinhardt
2024-05-10  2:15 ` Justin Tobler
2024-05-10  4:47   ` Junio C Hamano
2024-05-14  6:50     ` Patrick Steinhardt
2024-05-14  6:16 ` [RFC PATCH v2] " Patrick Steinhardt
2024-05-14 10:48   ` Karthik Nayak
2024-05-14 11:22     ` Patrick Steinhardt
2024-05-14 15:45       ` Junio C Hamano
2024-05-14 12:32     ` Dragan Simic
2024-05-24 12:54 ` [PATCH v3] " Patrick Steinhardt
2024-05-24 17:27   ` Junio C Hamano
2024-05-30 12:04     ` Patrick Steinhardt
2024-05-31  7:56 ` [PATCH v4 0/4] " Patrick Steinhardt
2024-05-31  7:56   ` [PATCH v4 1/4] docs: introduce document to announce " Patrick Steinhardt
2024-05-31 16:51     ` Junio C Hamano
2024-06-03  9:32       ` Patrick Steinhardt
2024-06-03 16:17         ` Junio C Hamano
2024-06-04  7:42           ` Patrick Steinhardt
2024-05-31  7:56   ` [PATCH v4 2/4] BreakingChanges: document upcoming change from "sha1" to "sha256" Patrick Steinhardt
2024-05-31 17:00     ` Junio C Hamano
2024-05-31  7:56   ` [PATCH v4 3/4] BreakingChanges: document removal of grafting Patrick Steinhardt
2024-05-31  7:56   ` [PATCH v4 4/4] BreakingChanges: document that we do not plan to deprecate git-checkout Patrick Steinhardt
2024-05-31 17:05     ` Junio C Hamano
2024-05-31 23:35       ` Todd Zullinger
2024-05-31  8:43   ` [PATCH v4 0/4] docs: document upcoming breaking changes Junio C Hamano
2024-05-31 11:15     ` Patrick Steinhardt
2024-06-03  9:28 ` [PATCH v5 " Patrick Steinhardt
2024-06-03  9:28   ` [PATCH v5 1/4] docs: introduce document to announce " Patrick Steinhardt
2024-06-03 14:08     ` Phillip Wood
2024-06-03 16:24     ` Junio C Hamano
2024-06-04  6:59       ` Patrick Steinhardt
2024-06-03  9:28   ` [PATCH v5 2/4] BreakingChanges: document upcoming change from "sha1" to "sha256" Patrick Steinhardt
2024-06-03 16:36     ` Junio C Hamano
2024-06-04  7:06       ` Patrick Steinhardt
2024-06-04 17:16         ` Junio C Hamano
2024-06-03  9:28   ` [PATCH v5 3/4] BreakingChanges: document removal of grafting Patrick Steinhardt
2024-06-03 16:42     ` Junio C Hamano
2024-06-03  9:28   ` [PATCH v5 4/4] BreakingChanges: document that we do not plan to deprecate git-checkout Patrick Steinhardt
2024-06-03 16:52     ` Junio C Hamano
2024-06-04  7:11       ` Patrick Steinhardt
2024-06-04 12:32 ` [PATCH v6 0/4] docs: document upcoming breaking changes Patrick Steinhardt
2024-06-04 12:32   ` [PATCH v6 1/4] docs: introduce document to announce " Patrick Steinhardt
2024-06-04 17:59     ` Junio C Hamano
2024-06-05  5:31       ` Patrick Steinhardt
2024-06-05 16:03         ` Junio C Hamano
2024-06-05 17:52           ` Junio C Hamano
2024-06-06  4:35             ` Patrick Steinhardt
2024-06-04 12:32   ` [PATCH v6 2/4] BreakingChanges: document upcoming change from "sha1" to "sha256" Patrick Steinhardt
2024-06-04 12:32   ` [PATCH v6 3/4] BreakingChanges: document removal of grafting Patrick Steinhardt
2024-06-04 18:00     ` Junio C Hamano
2024-06-04 12:32   ` [PATCH v6 4/4] BreakingChanges: document that we do not plan to deprecate git-checkout Patrick Steinhardt
2024-06-04 14:23   ` [PATCH v6 0/4] docs: document upcoming breaking changes Phillip Wood
2024-06-04 18:01     ` Junio C Hamano
2024-06-05  5:32       ` Patrick Steinhardt
2024-06-14  6:42 ` [PATCH v7 " Patrick Steinhardt
2024-06-14  6:42   ` [PATCH v7 1/4] docs: introduce document to announce " Patrick Steinhardt
2024-06-14 16:08     ` Junio C Hamano
2024-06-14  6:42   ` [PATCH v7 2/4] BreakingChanges: document upcoming change from "sha1" to "sha256" Patrick Steinhardt
2024-06-14  6:42   ` [PATCH v7 3/4] BreakingChanges: document removal of grafting Patrick Steinhardt
2024-06-14  6:42   ` [PATCH v7 4/4] BreakingChanges: document that we do not plan to deprecate git-checkout Patrick Steinhardt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=xmqq34q0rnio.fsf@gitster.g \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=toasty@dragondata.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.