Re: [RFC PATCH] Implement unstage and reset modes for git-add--interactive
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jul 24, 2009, 23:25 UTC
- Message-ID
- <7vzlat64u1.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <20090725065822.6117@nanako3.lavabit.com>
Nanako Shiraishi <nanako3@lavabit.com> writes:
Show 9 quoted lines
> Quoting Junio C Hamano <gitster@pobox.com> > >> "resetting index entries selectively" makes perfect sense. So do >> "checking out index entries selectively" and "adding to index >> selectively". > > Are you saying that you are fine with the concept of Thomas'es patch > series but you don't want to see different words used to name these > operations?
Essentially, yes.
Could you please wrap your lines to a reasonable length, by the way?
Show 16 quoted lines
> In other words, do you mean the following would be a pair of better > companions to "git add -p $file" than Thomas'es discard and unstage? > > - "git checkout -p $file" and "git checkout -p $commit $file" that let > you view the patch to bring the file in the working tree to the version > in the index (or the commit) and selectively apply that to the working > tree and the index, to implement "discarding changes selectively". > > - "git reset -p $file" and "git reset -p $commit $file" that let you > view the patch to bring the version of the file in the index to the > version in the HEAD (or the commit) and selectively apply that to the > index, to implement "undoing changes made to the index selectively". > > I think it preserves the UI consistency better to enhance checkout and > reset than adding new commands to do conceptually the same > thing...
I didn't read Thomas's series beyond the cover letter, but I'd say the above three (counting "add -p" in the mix) extends the existing concepts in a natural way:
- "add" goes from work tree to the index;
- "checkout" goes from commit or index to the work tree; and
- "reset" goes from commit to index.
The "-p" variant (which exists to "add" but new to "checkout" and "reset") allows you to do these movements in a finer grained manner than per whole-file.
> ... Unfortunately I don't know how hard the necessary change will be, > because these two commands are now implemented in C...
That's OK. There are others on the list who groks C, like Thomas ;-)