From: "SZEDER Gábor" <szeder.dev@gmail.com>
To: "Robert P. J. Day" <rpjday@crashcourse.ca>
Cc: Git Mailing list <git@vger.kernel.org>
Subject: Re: "git add -p" versus "git add -i", followed by "p"
Date: Sun, 2 Dec 2018 17:56:17 +0100 [thread overview]
Message-ID: <20181202165617.GG30222@szeder.dev> (raw)
In-Reply-To: <alpine.LFD.2.21.1812021124350.5509@localhost.localdomain>
On Sun, Dec 02, 2018 at 11:30:19AM -0500, Robert P. J. Day wrote:
>
> testing adding by patch for the very first time (i've just never
> needed this), and reading the "progit" book and reading the man page,
> and the impression i'm getting is that running "git add -p" (going
> straight to patch mode) is supposed to be equivalent to running "git
> add -i", then typing "p" to switch to patch mode.
>
> that is most emphatically not what i'm seeing. if i run "git add
> -p", then i get to what i expect -- the patch subsystem:
>
> $ git add -p
> diff --git a/README.asc b/README.asc
> index fa40bad..840e85b 100644
> --- a/README.asc
> +++ b/README.asc
> @@ -1,3 +1,9 @@
> +change 1
> +
> +
> +
> +
> +
> = Pro Git, Second Edition
>
> Welcome to the second edition of the Pro Git book.
> Stage this hunk [y,n,q,a,d,j,J,g,/,e,?]?
>
> but if i start with "git add -i", there seems to be no way to get to
> patch mode -- certainly "p" doesn't do it. am i stupidly missing
> something trivial? is the explanation misleading or inncomplete?
Worksforme™:
$ echo "New content" >>README.md
$ echo "New content" >>t/README
$ echo "New content" >>contrib//README
$ git add -i
staged unstaged path
1: unchanged +1/-0 README.md
2: unchanged +1/-0 contrib/README
3: unchanged +1/-0 t/README
*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
What now> p
staged unstaged path
1: unchanged +1/-0 README.md
2: unchanged +1/-0 contrib/README
3: unchanged +1/-0 t/README
Patch update>> 1
staged unstaged path
* 1: unchanged +1/-0 README.md
2: unchanged +1/-0 contrib/README
3: unchanged +1/-0 t/README
Patch update>> 2
staged unstaged path
* 1: unchanged +1/-0 README.md
* 2: unchanged +1/-0 contrib/README
3: unchanged +1/-0 t/README
Patch update>>
Here I hit enter. Did you?
diff --git a/README.md b/README.md
index f920a42fad..63dee5cfc3 100644
--- a/README.md
+++ b/README.md
@@ -62,3 +62,4 @@ and the name as (depending on your mood):
[Documentation/giteveryday.txt]: Documentation/giteveryday.txt
[Documentation/gitcvs-migration.txt]:
Documentation/gitcvs-migration.txt
[Documentation/SubmittingPatches]: Documentation/SubmittingPatches
+New content
Stage this hunk [y,n,q,a,d,e,?]? y
diff --git a/contrib/README b/contrib/README
index 05f291c1f1..2b152dfcff 100644
--- a/contrib/README
+++ b/contrib/README
@@ -41,3 +41,4 @@ submit a patch to create a subdirectory of contrib/
and put your
stuff there.
-jc
+New content
Stage this hunk [y,n,q,a,d,e,?]? n
*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
What now> q
Bye.
$ git diff --cached
diff --git a/README.md b/README.md
index f920a42fad..63dee5cfc3 100644
--- a/README.md
+++ b/README.md
@@ -62,3 +62,4 @@ and the name as (depending on your mood):
[Documentation/giteveryday.txt]: Documentation/giteveryday.txt
[Documentation/gitcvs-migration.txt]: Documentation/gitcvs-migration.txt
[Documentation/SubmittingPatches]: Documentation/SubmittingPatches
+New content
$
Arguably the documentation could make it clear that the user can
choose multiple files at once, e.g.:
diff --git a/Documentation/git-add.txt b/Documentation/git-add.txt
index c9623854bf..061f9cbb0d 100644
--- a/Documentation/git-add.txt
+++ b/Documentation/git-add.txt
@@ -317,9 +317,9 @@ add untracked::
patch::
- This lets you choose one path out of a 'status' like selection.
- After choosing the path, it presents the diff between the index
- and the working tree file and asks you if you want to stage
+ This lets you choose one or more paths out of a 'status' like selection.
+ After choosing the path(s), it presents the diff between the index
+ and the working tree file(s) and asks you if you want to stage
the change of each hunk. You can select one of the following
options and type return:
And perhaps we could have a dedicated menu entry for "I'm done with
selecting paths"? Dunno; I'm a 'git add -p' user myself.
next prev parent reply other threads:[~2018-12-02 16:56 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-02 16:30 "git add -p" versus "git add -i", followed by "p" Robert P. J. Day
2018-12-02 16:52 ` Kevin Daudt
2018-12-02 16:59 ` Robert P. J. Day
2018-12-02 16:56 ` SZEDER Gábor [this message]
2018-12-02 17:01 ` Robert P. J. Day
2018-12-02 17:03 ` Robert P. J. Day
2018-12-02 17:09 ` Duy Nguyen
2018-12-02 17:30 ` Robert P. J. Day
2018-12-08 16:22 ` Robert P. J. Day
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=20181202165617.GG30222@szeder.dev \
--to=szeder.dev@gmail.com \
--cc=git@vger.kernel.org \
--cc=rpjday@crashcourse.ca \
/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.