All of lore.kernel.org
 help / color / mirror / Atom feed
From: Felipe Contreras <felipe.contreras@gmail.com>
To: Junio C Hamano <gitster@pobox.com>, Bagas Sanjaya <bagasdotme@gmail.com>
Cc: Felipe Contreras <felipe.contreras@gmail.com>,
	git@vger.kernel.org, Jonathan Nieder <jrnieder@gmail.com>,
	Matthieu Moy <git@matthieu-moy.fr>,
	Michael J Gruber <git@grubix.eu>
Subject: Re: [PATCH 6/7] stage: add 'diff' subcommand
Date: Wed, 11 Aug 2021 12:17:33 -0500	[thread overview]
Message-ID: <6114062dc362d_30a208f9@natae.notmuch> (raw)
In-Reply-To: <xmqqzgto9dkd.fsf@gitster.g>

Junio C Hamano wrote:
> A more notable aspect of the above list is not the similarity but
> difference from the rest of Git.  The above organizes various
> operations on the staging area in a single command as its operating
> modes, so you'd use "git stage --diff" for comparing with the
> staging area but use something else ("git commit --diff HEAD"???).

It is not different from the rest of git:

 * git branch --delete
 * git tag --delete
 * git remote remove
 * git stash drop
 * git worktree remove
 * git submodule add
 * git config --edit
 * git notes remove
 * git bundle create
 * git bisect start

Plus it's not unusual for commands and options to be redundant,
especially when they attempt to simplify or improve the user interface,
starting with `git checkout` / `git switch`.

> It is a good example that illustrates that the proposed organization
> may not help learning or using the system for operations that also
> apply to other things like commit and working tree (in other words,
> "git stage --grep" may not be such a good idea for the same reason
> as "git stage --diff").  But if it were limited to operations that
> apply only to the index (e.g. "git add" and "git rm"), it may be an
> improvement (I think we added "git stage" synonym exactly for that
> reason, already).
> 
> Having said that, if we added "git stage --remove", there may be
> complaints that say "the stage command does too many things",

Or there might not.

> just like those that caused "checkout" to be split into "restore"
> (check out contents for selected paths in order to work on the current
> branch) and "switch" (check out a branch in order to start working on
> it).  I dunno.

I don't see many people complaining that `git branch` does "too many
things", neither `git stash` or any of the commands listed above.

Moreover, you are not addressing the most interesting thing my proposal
enables:

  git stage --edit

-- 
Felipe Contreras

  reply	other threads:[~2021-08-11 17:17 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-11  4:57 [PATCH 0/7] [un]stage: officially start moving to "staging area" Felipe Contreras
2021-08-11  4:57 ` [PATCH 1/7] stage: add proper 'stage' command Felipe Contreras
2021-08-11  4:57 ` [PATCH 2/7] stage: add helper to run commands Felipe Contreras
2021-08-11  4:57 ` [PATCH 3/7] stage: add 'add' subcommand Felipe Contreras
2021-08-11  4:57 ` [PATCH 4/7] stage: add 'remove' subcommand Felipe Contreras
2021-08-11  4:57 ` [PATCH 5/7] unstage: add 'unstage' command Felipe Contreras
2021-08-11  4:57 ` [PATCH 6/7] stage: add 'diff' subcommand Felipe Contreras
2021-08-11  6:12   ` Bagas Sanjaya
2021-08-11  7:24     ` Felipe Contreras
2021-08-11 16:00     ` Junio C Hamano
2021-08-11 17:17       ` Felipe Contreras [this message]
2021-08-11 19:06       ` Jeff King
2021-08-11 20:18         ` Felipe Contreras
2021-08-11 20:30           ` Jeff King
2021-08-11 21:24             ` Felipe Contreras
2021-08-11 20:19         ` Michael J Gruber
2021-08-11 20:40           ` Jeff King
2021-08-11 20:51             ` Michael J Gruber
2021-08-11 21:02             ` Jeff King
2021-08-11 20:57           ` Junio C Hamano
2021-08-11 21:40           ` Felipe Contreras
2021-08-11  4:57 ` [PATCH 7/7] stage: add 'edit' command Felipe Contreras
2021-08-11 10:44 ` [PATCH 0/7] [un]stage: officially start moving to "staging area" Michael J Gruber
2021-08-11 16:55   ` Felipe Contreras

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=6114062dc362d_30a208f9@natae.notmuch \
    --to=felipe.contreras@gmail.com \
    --cc=bagasdotme@gmail.com \
    --cc=git@grubix.eu \
    --cc=git@matthieu-moy.fr \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jrnieder@gmail.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.