git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: git add -p with new file

From
Jeff King <peff@peff.net>
Date
Dec 9, 2016, 14:11 UTC
Message-ID
<20161209141129.r53b4rbtgd76fn2a@sigill.intra.peff.net>
In-Reply-To
<alpine.DEB.2.11.1612062012540.13185@cherryberry.dsgml.com>
On Tue, Dec 06, 2016 at 08:18:59PM -0500, Ariel wrote:
Show 10 quoted lines
> 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.
> 
> (Note: I am aware I can do -N first, but when I specifically enter the name
> of a new file I feel it should figure out what I mean.)

Keep in mind that the argument to "git add -p" is not a filename, but a "pathspec" that can match many files. What should:

  git init
  mkdir subdir
  for i in one two; do echo $i >subdir/$i; done
  git add -p subdir

do? Or for that matter, "git add -p ."? It's contrary to the rest of git-add for specifying pathspecs to actually make things _more_ inclusive rather than less.

So I don't think triggering the change of behavior based on the presence of a pathspec makes sense.

Historically "add -p" has been more like "add -u" in updating tracked files. 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.

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.

-Peff
Previous: Stephan BeyerNext: Ariel
Message 5 of 17 in “git add -p with new file”
  1. ArielDec 7, 2016
  2. Duy NguyenDec 7, 2016
  3. ArielDec 9, 2016
  4. Stephan BeyerDec 12, 2016
  5. Jeff KingDec 9, 2016
  6. ArielDec 9, 2016
  7. Jeff KingDec 10, 2016
  8. Junio C HamanoDec 10, 2016
  9. Jeff KingDec 11, 2016
  10. Stephan BeyerDec 12, 2016
  11. Jeff KingDec 13, 2016
  12. Junio C HamanoDec 13, 2016
  13. Jeff KingDec 13, 2016
  14. Junio C HamanoDec 13, 2016
  15. git add -p with unmerged files (was: git add -p with new file)Stephan Beyer, Dec 13, 2016
  16. Jeff KingDec 13, 2016
  17. Junio C HamanoDec 13, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.