git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jonathan Nieder <jrnieder@gmail.com>
To: Piotr Krukowiecki <piotr.krukowiecki.news@gmail.com>
Cc: git@vger.kernel.org, Alexei Sholik <alcosholik@gmail.com>,
	Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>,
	David <bouncingcats@gmail.com>, Jeff King <peff@peff.net>,
	Drew Northup <drew.northup@maine.edu>,
	Felipe Contreras <felipe.contreras@gmail.com>,
	Jonathan Nieder <jrnieder@gmail.com>,
	Junio C Hamano <gitster@pobox.com>
Subject: Re: Consistent terminology: cached/staged/index
Date: Tue, 1 Mar 2011 04:29:03 -0600	[thread overview]
Message-ID: <20110301102903.GA31176@elie> (raw)
In-Reply-To: <AANLkTi=9OWqz66Ab6O9tc4eYSrhZZ1YC_+ta9sutAn30@mail.gmail.com>

Hi again,

Piotr Krukowiecki wrote:

> is there a plan for using one term

To summarize: everyone knows what the staging area is, no one seems to
know what the index is, and the --cached options are confusing.

We need a new description (terminology, or better yet, story) for
"git's view of the work tree", since just saying "the index! the
index!" without a myth behind it confuses people.

Various commands take --cached (porcelain):

. git diff --cached	- view staged changes relative to the named tree.
. git grep --cached	- search in the staging area instead of the worktree.
. git rm --cached	- only remove from the index.

(plumbing):

. git apply --cached	- apply a patch without touching the worktree.
. git ls-files --cached	- list paths that will have content in the next commit.

It would be reasonable to introduce a synonym --index-only.  That can
be confusing if you don't view the staging area as representing git's
deluded idea of what's in the work tree, though.  For the same reason
and some others, --no-worktree / --ignore-worktree wouldn't work so
well (e.g., "git ls-files --no-worktree" would be terribly confusing).
So, um, we're stuck?

Various commands take --index or related options (porcelain):

. git filter-branch --index-filter	- let hook tweak index before commit
. git stash apply --index	- revive the stashed index changes, too
. git stash save --keep-index	- do not stash changes already added to index

(toys):

. git grep --no-index	- just act as a better "grep"; do not look for .git
. git diff --no-index	- just act as a better "diff"; do not look for .git

(plumbing):

. git apply --index	- next commit will have the patch applied, too
. git checkout-index --index	- update stat() cache while at it
. git read-tree --index-output	- write output to a different index file
. git update-index --index-info	- apply changes in ls-tree or ls-files format
. GIT_INDEX_FILE	- where information about the worktree goes

It would be possible to introduce synonyms along the lines of
GIT_STAGING_AREA_FILE, keeping in mind that they also affect the
merging process (and some of them also affect the stat() cache), if
that seems like the right thing to do.

      parent reply	other threads:[~2011-03-01 10:29 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-13 19:20 Consistent terminology: cached/staged/index Piotr Krukowiecki
2011-02-13 19:37 ` Jonathan Nieder
2011-02-13 22:58   ` Junio C Hamano
2011-02-14  2:05     ` Miles Bader
2011-02-14  5:57       ` Junio C Hamano
2011-02-14  6:27         ` Miles Bader
2011-02-14  6:59           ` Johannes Sixt
2011-02-14  7:07             ` Miles Bader
2011-02-14 10:42               ` Michael J Gruber
2011-02-14 11:04                 ` Miles Bader
2011-02-14 17:12                   ` Junio C Hamano
2011-02-14 22:07                     ` Miles Bader
2011-02-14 22:59                       ` Junio C Hamano
2011-02-14 23:47                         ` Miles Bader
2011-02-15  0:12                           ` Junio C Hamano
2011-02-14 13:14                 ` Nguyen Thai Ngoc Duy
2011-02-14 13:43                   ` Michael J Gruber
2011-02-14 13:57                     ` Nguyen Thai Ngoc Duy
2011-02-14 14:17                     ` Felipe Contreras
2011-02-14 14:21                       ` Nguyen Thai Ngoc Duy
2011-02-14 14:40                         ` Jakub Narebski
2011-02-14 15:24                       ` Michael J Gruber
2011-02-14 16:00                         ` Felipe Contreras
2011-02-14 16:04                           ` Michael J Gruber
2011-02-14 16:27                             ` Felipe Contreras
2011-02-14  3:09     ` Pete Harlan
2011-02-16 23:11       ` Drew Northup
2011-02-26 20:36         ` Felipe Contreras
2011-02-27 15:30           ` Drew Northup
2011-02-27 21:16       ` Aghiles
2011-02-28 20:53         ` Drew Northup
2011-02-14 22:32     ` Piotr Krukowiecki
2011-02-14 23:19       ` Jonathan Nieder
2011-02-15  8:29         ` Pete Harlan
2011-02-15  9:00           ` Jonathan Nieder
2011-02-15 18:15         ` Piotr Krukowiecki
2011-02-15 18:38           ` Jonathan Nieder
2011-02-26 21:09         ` Felipe Contreras
2011-02-26 21:51           ` Jonathan Nieder
2011-02-27  0:01             ` Miles Bader
2011-02-27  0:16             ` Felipe Contreras
2011-02-27  0:46               ` Jonathan Nieder
2011-02-27  8:15               ` Junio C Hamano
2011-02-27  8:43           ` Jeff King
2011-02-27  9:21             ` Miles Bader
2011-02-27 22:28               ` Jon Seymour
2011-02-27 23:57                 ` Junio C Hamano
2011-02-28  9:38                   ` Michael J Gruber
2011-02-27 15:34             ` Drew Northup
2011-02-28 23:03               ` Jeff King
2011-03-01  9:11                 ` David
2011-03-01  9:15                   ` Matthieu Moy
2011-03-01  9:32                     ` Alexei Sholik
2011-03-01 17:02                       ` Drew Northup
2011-03-01 17:30                         ` Alexei Sholik
2011-03-01 17:41                           ` Drew Northup
2011-03-01  9:27                   ` Alexey Feldgendler
2011-03-01 16:46                     ` Drew Northup
2011-03-04 17:18                       ` Felipe Contreras
2011-03-05  4:53                         ` Miles Bader
2011-03-05  5:00                           ` Jonathan Nieder
2011-03-06 12:44                           ` Drew Northup
     [not found]               ` <878466.93199.1298934204331.JavaMail.trustmail@mail1.terreactive.ch>
2011-03-01  8:43                 ` Victor Engmark
2011-02-27 18:46           ` Phil Hord
2011-03-01 10:29 ` Jonathan Nieder [this message]

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=20110301102903.GA31176@elie \
    --to=jrnieder@gmail.com \
    --cc=Matthieu.Moy@grenoble-inp.fr \
    --cc=alcosholik@gmail.com \
    --cc=bouncingcats@gmail.com \
    --cc=drew.northup@maine.edu \
    --cc=felipe.contreras@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=peff@peff.net \
    --cc=piotr.krukowiecki.news@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 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).