From: Carl Worth <cworth@cworth.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Petr Baudis <pasky@suse.cz>,
Martin Langhoff <martin.langhoff@gmail.com>,
git@vger.kernel.org
Subject: Re: [FAQ?] Rationale for git's way to manage the index
Date: Wed, 09 May 2007 09:29:00 -0700 [thread overview]
Message-ID: <873b26klkj.wl%cworth@cworth.org> (raw)
In-Reply-To: <alpine.LFD.0.98.0705090825090.4062@woody.linux-foundation.org>
[-- Attachment #1: Type: text/plain, Size: 2291 bytes --]
On Wed, 9 May 2007 08:52:09 -0700 (PDT), Linus Torvalds wrote:
[Snip good description of rebuilding a branch to meet some "target"
state.]
That's all really good stuff. And as you mentioned you sometimes use
cherry-pick during this rebuilding, one can also use "git add -i" to
help with splitting up an ugly commit that should have been multiple
commit.
For example, a sequence might look like this, (I always use "desired"
where you use target):
git diff HEAD desired | git apply
git add -i
git commit
git reset --hard
# test here and commit --amend as needed
And repeat that as needed. It's really no different than your "edit
the diff" approach. It's just using "add -i" instead of a text
editor. But I do admit that the commit;reset;test;--amend sequence
might seem a bit too awkward to some people.
> test-things, but since one of them was a filesystem fix, and the other one
> was in the kernel, rather than give all the paths explicitly, I'd do
>
> git commit fs/
>
> and it will automatically do the right thing (actually, I often end up
> using the two-stage "git add" + "git commit" thing, because one of the
> more common cases for me is that I'm going to commit a merge that I fixed
> up a conflict in, and then you have to do it that way).
This reminds me of a confusing semantic issue that came about with the
"new" add. It can be quite natural to commit a single file in one step
with:
git commit some-file.c
or to do that in two steps with:
git add some-file.c
git commit
(which is particularly useful if one wants to add multiple files).
I recently found myself wanting to do a similar thing with a directory
path. I can commit a path with:
git commit path/
but I don't get anything at all like the same semantics if I do:
git add path/
git commit
(since "git add" will recursively add all untracked files under path/).
Now the "recursively add all files" behavior is older, and has been an
essential part of git-add forever. But I found it to be not at all
what I wanted in this case, (where I'm now trained to say "git add" to
stage things into the index).
I don't know of any good fix for the problem now. Maybe I'll just need to
remember to break out that old "git update-index" for a situation like
this, but that sure feels clunky.
-Carl
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
next prev parent reply other threads:[~2007-05-09 16:29 UTC|newest]
Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-06 16:10 [FAQ?] Rationale for git's way to manage the index Matthieu Moy
2007-05-06 16:51 ` Johannes Schindelin
2007-05-06 17:34 ` Matthieu Moy
2007-05-06 17:43 ` Junio C Hamano
2007-05-09 12:52 ` Petr Baudis
2007-05-09 13:57 ` Johannes Schindelin
2007-05-09 14:24 ` [PATCH] git-commit: Reformat log messages provided on commandline Petr Baudis
2007-05-09 14:59 ` Matthieu Moy
2007-05-09 15:11 ` Petr Baudis
2007-05-09 15:32 ` Matthieu Moy
2007-05-09 15:01 ` Johannes Schindelin
2007-05-10 0:45 ` Junio C Hamano
2007-05-12 0:25 ` Jakub Narebski
2007-05-06 18:22 ` [FAQ?] Rationale for git's way to manage the index Dana How
2007-05-06 23:42 ` Johannes Schindelin
2007-05-06 17:25 ` Linus Torvalds
2007-05-06 18:23 ` Matthieu Moy
2007-05-06 19:54 ` Linus Torvalds
2007-05-06 22:53 ` Julian Phillips
2007-05-07 6:35 ` Karl Hasselström
2007-05-08 1:41 ` Shawn O. Pearce
2007-05-08 7:15 ` Johannes Sixt
2007-05-08 10:28 ` Karl Hasselström
2007-05-08 12:40 ` J. Bruce Fields
2007-05-08 14:53 ` Karl Hasselström
2007-05-09 3:45 ` J. Bruce Fields
2007-05-09 9:40 ` Johannes Schindelin
2007-05-08 7:37 ` Karl Hasselström
2007-05-08 14:52 ` Shawn O. Pearce
2007-05-06 23:51 ` Johannes Schindelin
2007-05-07 8:02 ` Matthieu Moy
2007-05-07 11:05 ` Johannes Schindelin
2007-05-09 13:07 ` Petr Baudis
2007-05-08 3:16 ` Martin Langhoff
2007-05-08 4:45 ` Linus Torvalds
2007-05-08 5:35 ` Martin Langhoff
2007-05-09 13:41 ` Petr Baudis
2007-05-09 15:52 ` Linus Torvalds
2007-05-09 16:29 ` Carl Worth [this message]
2007-05-11 1:28 ` Jakub Narebski
[not found] ` <7vd518gkyo.fsf@assigned-by-dhcp.cox.net>
2007-05-11 11:26 ` Jakub Narebski
2007-05-11 16:45 ` Junio C Hamano
2007-05-11 23:06 ` Jakub Narebski
2007-05-12 0:40 ` Junio C Hamano
2007-05-12 1:06 ` Jakub Narebski
2007-05-12 9:35 ` Jakub Narebski
2007-05-09 16:33 ` Dana How
2007-05-09 17:18 ` J. Bruce Fields
2007-05-09 17:26 ` Petr Baudis
2007-05-09 17:29 ` J. Bruce Fields
2007-05-09 17:39 ` Daniel Barkalow
2007-05-09 18:16 ` Linus Torvalds
2007-05-10 0:31 ` Junio C Hamano
2007-05-10 2:27 ` Steven Grimm
2007-05-10 2:39 ` Linus Torvalds
2007-05-10 8:00 ` Matthieu Moy
2007-05-10 22:06 ` Shawn O. Pearce
2007-05-10 22:51 ` Petr Baudis
2007-05-08 11:07 ` Johannes Schindelin
2007-05-15 1:00 ` David Kågedal
2007-05-15 23:27 ` Johannes Schindelin
2007-05-09 17:18 ` Matthieu Moy
2007-05-07 11:40 ` Guilhem Bonnefille
2007-05-07 12:16 ` Karl Hasselström
2007-05-07 12:36 ` David Kastrup
2007-05-07 12:55 ` Johannes Schindelin
2007-05-07 19:31 ` Junio C Hamano
2007-05-09 13:14 ` Petr Baudis
2007-05-07 22:23 ` Daniel Barkalow
2007-05-15 0:57 ` David Kågedal
2007-05-15 8:29 ` Karl Hasselström
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=873b26klkj.wl%cworth@cworth.org \
--to=cworth@cworth.org \
--cc=git@vger.kernel.org \
--cc=martin.langhoff@gmail.com \
--cc=pasky@suse.cz \
--cc=torvalds@linux-foundation.org \
/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).