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

Re: [BUG] 'add -u' doesn't work from untracked subdir

From
Jeff King <peff@peff.net>
Date
Sep 5, 2009, 07:20 UTC
Message-ID
<20090905072017.GA5152@coredump.intra.peff.net>
In-Reply-To
<7v8wgt98ms.fsf@alter.siamese.dyndns.org>
On Sat, Sep 05, 2009 at 12:02:35AM -0700, Junio C Hamano wrote:
> The intent of 1.7.0 is to fix usability glitches and warts that everybody
> has long agreed are problematic.  People have *just started* discussing
> about this---it is not remotely close to "everybody has long agreed are
> problematic" criteria.  It is too late for 1.7.0.

What about a config option that could change the behavior? True, the time-frame for discussion is much shorter, but we are not proposing to make a change that would affect users who do not agree to it. And I think the point of giving a long time-frame for discussion is to let people decide whether a change that users do not agree to may affect them in a bad way.

The real danger here is that users of the config option may be breaking an interface that is used by scripts. But I feel that 1.7.0 is probably the best time in the forseeable future to do that, as script-writers already must be wary of the version change.

Show 5 quoted lines
> I personally find "add -u" that defaults to the current directory more
> natural than always going to the root; same preference for "grep".
> Besides, "add -u subdir" must add subdir relative to the cwd, without
> going to the root.  Why should "add -u" sans argument behave drastically
> differently?

I agree that there is a certain consistency to the current behavior. But I also find it terribly annoying, because I _always_ want it to do the other thing, and it silently accepts the command without even telling me, leaving me to find out ten minutes later that what I thought was added was not ("git add", by contrast, yells at you in the same situation).

I also happen to prefer the other behavior because it is easy to switch the two options: "git add -u" versus "git add -u .", whereas with current behavior I am stuck calculating (and typing) the correct number of "../" markers.

But I respect the fact that even if we had infinite time for discussion, there would be people who prefer it the opposite way to me. So how about that config option?

Show 5 quoted lines
> Speaking of cwd-ness, I sometimes find ls-tree irritating, but I think
> this is in "if we had known better we would have designed it differently,
> but because we didn't, because many scripts already depend on the current
> behaviour, and because we have an --full-name escape hatch, we are not
> likely to change it, ever" category.

I assume you mean "ls-files". I have every once in a while been annoyed by that, but given how infrequently I run ls-files, it is not a big deal. :)

> If "git add -u ../.." (I mean "the grand parent directory", not "an
> unnamed subdirectory") did not work, it would be unexcusable and we would
> want to devise an migration path, but otherwise I do not think it is such
> a big deal.  I would say the commands that are used to incrementally build

As I mentioned above, not only is that annoying to use, but the real problem is that I _expect_ the other behavior and it silently does the opposite of what I want. You can argue that my brain is defective (for not remembering, I mean -- we _know_ it's defective in other ways), but certainly a config option would be useful to me.

> Oh, "git grep -e foo ../..", however, does not seem to work.  That might be
> something people may want to tackle.

Thanks for mentioning "git grep"; I had forgotten that I have been bitten by expecting full-tree behavior from that in the past, too. A config option should cover that, too. ;)

-Peff
Previous: Junio C HamanoNext: Junio C Hamano
Message 6 of 35 in “[BUG] 'add -u' doesn't work from untracked subdir”
  1. SZEDER GáborSep 2, 2009
  2. Jeff KingSep 2, 2009
  3. Clemens BuchacherSep 4, 2009
  4. Jeff KingSep 5, 2009
  5. Junio C HamanoSep 5, 2009
  6. Jeff KingSep 5, 2009
  7. Junio C HamanoSep 5, 2009
  8. Jeff KingSep 5, 2009
  9. Junio C HamanoSep 5, 2009
  10. Clemens BuchacherSep 6, 2009
  11. Nanako ShiraishiSep 9, 2009
  12. Junio C HamanoSep 10, 2009
  13. Clemens BuchacherSep 10, 2009
  14. 1/2 grep: accept relative paths outside current working directoryClemens Buchacher, Sep 5, 2009
  15. 2/2 add 'scope' config optionClemens Buchacher, Sep 5, 2009
  16. 2/2 add 'scope' config optionClemens Buchacher, Sep 5, 2009
  17. Junio C HamanoSep 6, 2009
  18. grep: fix exit status if external_grep() returns errorClemens Buchacher, Sep 7, 2009
  19. Junio C HamanoSep 7, 2009
  20. Jeff KingSep 5, 2009
  21. Junio C HamanoSep 5, 2009
  22. Clemens BuchacherSep 5, 2009
  23. Junio C HamanoSep 5, 2009
  24. Jakub NarebskiSep 5, 2009
  25. Clemens BuchacherSep 5, 2009
  26. Junio C HamanoSep 5, 2009
  27. Matthieu MoySep 6, 2009
  28. Clemens BuchacherSep 6, 2009
  29. Matthieu MoySep 7, 2009
  30. SZEDER GáborSep 7, 2009
  31. Matthieu MoySep 7, 2009
  32. Nanako ShiraishiSep 7, 2009
  33. Junio C HamanoSep 7, 2009
  34. Clemens BuchacherSep 7, 2009
  35. SZEDER GáborSep 4, 2009

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.