From: Jonathan Nieder <jrnieder@gmail.com>
To: Pete Harlan <pgit@pcharlan.com>
Cc: Piotr Krukowiecki <piotr.krukowiecki.news@gmail.com>,
Junio C Hamano <gitster@pobox.com>,
git@vger.kernel.org
Subject: Re: Consistent terminology: cached/staged/index
Date: Tue, 15 Feb 2011 03:00:09 -0600 [thread overview]
Message-ID: <20110215090009.GA22498@elie> (raw)
In-Reply-To: <4D5A3964.9090209@pcharlan.com>
Hi Pete,
Pete Harlan wrote:
> Part of the issue could be that one intimately familiar with Git's
> internals may find a process oriented interface irritating ("Why must
> it say 'staging area' when it's just updating the index?")
No, no. I agree there's a problem to solve here. The current
documentation for git (e.g., the user manual) has a nice, coherent,
user-oriented narrative about trees, commits, and blobs, and meanwhile
it is hard to find a clear story about the index.
Such a story would have to describe the conflict resolution process.
When you encounter a merge conflict, how do you resolve it? The best
I can do for now is to point to the user manual[1].
http://www.kernel.org/pub/software/scm/git/docs/user-manual.html#conflict-resolution
I even think it is okay to say "The index is a sort of staging area
for your next commit". Because that is true. But it is not the full
story, so if one wants to give the index a new name --- which is a
costly thing to do, anyway --- then I do not think "the staging area"
works.
I feel bad to only be presenting complications instead of an alternate
solution. I do consider workflow oriented explanations very useful.
I've been giving technical explanations in this thread as background
for future storytelling, in the hope that someone more talented than I
am can digest it into a good narrative.
Jonathan
[1] Maybe the process is overdesigned. After all, what would we lose
by saying
- an unmerged path justs gets an "unmerged" flag set, meaning that
flag is not ready for commit yet
- to get the copy from the common ancestor, use
git show $(git merge-base HEAD MERGE_HEAD):path/to/file
- to get the copy from HEAD, use
git show HEAD:path/to/file
- likewise to get the copy from MERGE_HEAD
And while I can give answers about why that is a bad interface
(recomputing the merge base is a waste of time; in a recursive merge
the merge base is not a real commit; if there were renames, the copy
from HEAD could be HEAD:other/path and it is hard to find what
other/path is), are those answers enough to justify learning this new
trick?
So we need a better story.
next prev parent reply other threads:[~2011-02-15 9:00 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 [this message]
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
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=20110215090009.GA22498@elie \
--to=jrnieder@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=pgit@pcharlan.com \
--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 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.