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: Jonathan Nieder <hidden>
Date: 2016-06-15 22:52:45
Subsystem: the rest · Maintainer: Linus Torvalds

Possibly related (same subject, not in this thread)

(+cc: Wincent who brought us the "add -p" shortcut --- thanks!; Thomas,
 who expanded its scope to git checkout et al; and Jeff, who has done
 some hacking on it)
Hi Josh,

Josh Triplett wrote:
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.

Hope that helps,
Jonathan

 git-add--interactive.perl |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/git-add--interactive.perl b/git-add--interactive.perl
index 8f0839d2..6e99ff1b 100755
--- a/git-add--interactive.perl
+++ b/git-add--interactive.perl
@@ -1619,6 +1619,10 @@ sub main_loop {
 process_args();
 refresh();
 if ($patch_mode) {
+	if ($patch_mode eq 'stage') {
+		# NEEDSWORK: should use "git update-index --intent-to-add"
+		system(qw(git add --intent-to-add --), @ARGV);
+	}
 	patch_update_cmd();
 }
 else {
-- 
1.7.8.2
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help