Re: git add -p with new file
- From
- Ariel <asgit@dsgml.com>
- Date
- Dec 9, 2016, 18:43 UTC
- Message-ID
- <alpine.DEB.2.11.1612091331170.13185@cherryberry.dsgml.com>
- In-Reply-To
- <20161209141129.r53b4rbtgd76fn2a@sigill.intra.peff.net>
On Fri, 9 Dec 2016, Jeff King wrote:
> On Tue, Dec 06, 2016 at 08:18:59PM -0500, Ariel wrote:
>> If you do git add -p new_file it says:
>> No changes.
>> Which is a rather confusing message. I would expect it to show me the >> content of the file in patch form, in the normal way that -p works, let me >> edit it, etc.
> What should:
[git add directory with two new files]
> do?
It should do the exact same thing that git add without -p does: Add the directory and both files, but because of the -p also show the diff on the screen and ask.
> It's contrary to the rest of git-add for specifying pathspecs to > actually make things _more_ inclusive rather than less.
Is it? Because git add without -p is happy to add new files.
> Historically "add -p" has been more like "add -u" in updating tracked > files.
But it doesn't have to be that way. You could make add -p identical to add without options, except the -p prompts to review diffs first.
> We have "-A" for "update everything _and_ new files". It doesn't > seem unreasonable to me to have a variant of "-p" that is similar.
That seems unnecessarily complex because -p asks about each file, so you will never find new files added without realizing it.
> I don't think that variant should just be "add -N everything, and then > run add -p". As Duy points out, the patch for a new file is just one big > block. But the decision of "do I want to start tracking this untracked > file" is potentially an interesting one.
What makes sense to me is a two part question: First ask 'Add new path', and then if yes, ask to stage the hunk (where the hunk is the entire file).
This makes -p useful on new files, without hurting prior expectations of how it works.
-Ariel