Thread (1 message) 1 message, 1 author, 2016-06-15

Re: Please support add -p with a new file, to add only part of the file

From: Thomas Rast <hidden>
Date: 2016-06-15 22:52:45

Jonathan Nieder [off-list ref] writes:
Josh Triplett wrote:
quoted
I recently found myself with a new file that I needed to check in part
of with several commits.  I wanted to use "git add -p newfile" and use
'e' to add and commit several times (along with corresponding bits in
existing files).  However, "git add -p" does not work on a new file,
only an existing file.
Yep.  A workaround is to use "git add -N newfile" before running
"git add -p newfile".

I imagine "git add -p '*.c'" should also offer to add hunks from
source files that git doesn't know about yet, too.

Here's a quick demo (untested) that might _almost_ do the right thing.
Unfortunately it leaves intent-to-add entries around even for files
the operator rejects.  Anyway, maybe it can be a good starting point
for playing around.
I think a proper solution needs a way to generate a diff that includes
all of the named files (even untracked).  AFAICS there is no such
feature in the diff-* commands right now.

A not-so-proper solution might of course start by looking at which files
are untracked, and only run the 'git add -N' immediately before patch
application.

-- 
Thomas Rast
trast@{inf,student}.ethz.ch
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help