Re: [PATCH 6/7] stage: add 'diff' subcommand

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Jeff King wrote:
> On Wed, Aug 11, 2021 at 09:00:18AM -0700, 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 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).
> 
> One thing I find off-putting about "git stage --diff" is that to me,
> "stage" reads as a verb. So it is like "git add --diff", which seems
> out-of-place; there are two verbs in a row.
> 
> I do not mind the term "staging area", but using "the stage" as a noun
> is simply confusing to me in this context.

OK, but "stage" can be a noun.

Here is one of the definitions:

  : a center of attention or scene of action

This definition doesn't imply what the action is about, but
"commit stage" should be perfectly aligned with that definition.

Here's another one:

  : one of two or more sections of a rocket that have their own fuel and engine

These rocket stages need to be prepared before the launch, just like
changes before a commit. A commit can be thought of as a single-stage
rocket, and just like parts can be added and removed from this
single-stage before launch, so can changes before a commit.

I understand why this might not seem natural to native English speakers,
but it's perfectly aligned with the etymology of the word "stage"
(to stay).

I'm not saying it should be thought of this way, merely that it *can*.


Either way, I also thought about adding yet another command
`git staging-area` and diff instead of an option be a subcommand:
`git staging-area diff`, but to be frank I don't think anybody would end
up using this command, especially without default aliases (like
`git sa`). So I opted against it.

Even though `git stage --diff` is not ideal, it's the least bad option
in my option.

-- 
Felipe Contreras



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux