git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff King <peff@peff.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: "David Symonds" <dsymonds@gmail.com>,
	"Björn Steinbrink" <B.Steinbrink@gmx.de>,
	"Johannes Schindelin" <Johannes.Schindelin@gmx.de>,
	git@vger.kernel.org, "Stephan Beyer" <s-beyer@gmx.net>
Subject: Re: [PATCH] git-diff: Add --staged as a synonym for --cached.
Date: Mon, 10 Nov 2008 20:22:10 -0500	[thread overview]
Message-ID: <20081111012210.GA26920@coredump.intra.peff.net> (raw)
In-Reply-To: <7vljvr2hjn.fsf@gitster.siamese.dyndns.org>

On Mon, Nov 10, 2008 at 05:11:08PM -0800, Junio C Hamano wrote:

> I doubt "Is there any further discussion on THIS ONE ALONE?" is a valid
> question to ask.  What are the other command options we are introducing
> synonyms for?  There is no need for two variants of staged for "diff" (you
> don't have --staged-too option but instead you give a committish argument,
> e.g. HEAD), so --staged-only can be abbreviated to --staged without
> risking any ambiguity.  But at least a fully-spelled-out --staged-only
> should also be accepted, shouldn't it?

I'm not sure that "staged-only" really makes sense here. In modification
commands like "apply", it is about "do this one thing to the working
tree, to both the index and the working tree, or to just the index".

But here, you are selecting two points for comparison. So while it is
tempting to say "the default for diff just happens to work on the index
and the working tree, so we don't need --staged-too", I don't think that
is right. Doing "--staged-only" is _not_ about saying "do the thing we
would have done to the working tree and the index to just the index." It
is about "use HEAD as one of the points instead of the working tree
(and reverse the order of points :) )".

To me, what is really being asked with "git diff --staged" (or "git
diff --cached" for that matter), is "what is staged?" That is, diff is
not about an operation on a data location (like HEAD, index, or working
tree), but rather an operatoin on a data _relationship_. So you ask for
"what is not staged" (the relationship between index and working tree),
"what is staged" (the relationship between HEAD and index), "what is
different between the working tree and HEAD", or "what is different
between these two trees".

-Peff

  reply	other threads:[~2008-11-11  1:23 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-10-29 16:15 [PATCH] git-diff: Add --staged as a synonym for --cached David Symonds
2008-10-29 16:42 ` Jeff King
2008-10-29 16:50   ` David Symonds
2008-10-29 17:06     ` Johannes Schindelin
2008-10-29 17:11       ` Jeff King
2008-11-02  8:30         ` Junio C Hamano
2008-11-03  7:04           ` Jeff King
2008-11-02 12:35         ` Björn Steinbrink
2008-11-02 18:30           ` Junio C Hamano
2008-11-02 18:54             ` Björn Steinbrink
2008-11-03  7:14             ` Jeff King
2008-11-10 23:37               ` David Symonds
2008-11-11  0:15                 ` Jeff King
2008-11-11  1:11                 ` Junio C Hamano
2008-11-11  1:22                   ` Jeff King [this message]
2008-11-12  0:57                     ` Junio C Hamano
2008-11-11  4:04               ` Avery Pennarun
2008-11-11  5:49                 ` Miles Bader
2008-11-12  8:33                 ` Jeff King
2008-11-12 11:10                   ` Johannes Schindelin
2008-11-12 11:06                     ` Jeff King
2008-11-12 15:39                       ` Avery Pennarun
2008-11-12 19:15                         ` Jeff King
2008-11-12 19:29                           ` Junio C Hamano
2008-11-12 19:37                             ` Jeff King
2008-11-12 19:57                               ` Junio C Hamano
2008-11-12 22:39                                 ` Avery Pennarun
2008-11-12 23:42                                   ` Junio C Hamano
2008-11-12 15:46                     ` Avery Pennarun

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=20081111012210.GA26920@coredump.intra.peff.net \
    --to=peff@peff.net \
    --cc=B.Steinbrink@gmx.de \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=dsymonds@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=s-beyer@gmx.net \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).