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

Re: [PATCH 2/2] add: respect add.updateroot config option

From
Junio C Hamano <gitster@pobox.com>
Date
Mar 13, 2013, 15:51 UTC
Message-ID
<7vmwu747tf.fsf@alter.siamese.dyndns.org>
In-Reply-To
<20130313092754.GA12658@sigill.intra.peff.net>
Jeff King <peff@peff.net> writes:
Show 20 quoted lines
>> Your patch doesn't advertise the option in the warning message, which I
>> think is good. You may mention it the commit message that this is a
>> deliberate choice.
>
> Yes, it was deliberate. I can add a note.
>
>> > +add.updateroot::
>> 
>> Detail: option names are normally camelCased => updateRoot.
>
> Good point, thanks.
>
>> I think the option name needs a bit more thinking. Without reading the
>> doc,
>> 
>> [add]
>> 	updateRoot = false
>> 
>> would be a very tempting thing to try. Perhaps explicitly warning when
>> add.updateroot is set to false would avoid possible confusion.

This is essentially the same as Matthieu's add.use2dot0Behavior but with that "it is an error to explicitly set it to false" twist, it alleviates one of the worries. It still has the same "the user saw it mentioned on stackoverflow and sets it without understanding that the behaviour is getting changed" effect.

Also it won't give chance for scripts to get fixed, even though I suspect that instances of "add -u/-A" without pathspec end users write in their custom scripts almost always would want to be tree-wide and it is a bug that they do not pass ":/" to them.

The "future.*" (I'd rather call that "migration.*") approach with the "never set it to false" twist is probably OK from the "complaint avoidance" perspective. The user cannot later complain "I tried to squelch the advice but at the same time I ended up adding updated contents outside my diretory", without getting told "That is the documented behaviour, isn't it?" But I still think it is much less nice from "avoid hurting the users" perspective. If the way to squelch the user learns were to say "git add -u .", where the user explicitly says "take the updated contents from this directory and below", there is no room for confusion. We won't hear complaints either way, but with the "future.*" the reason why we won't hear complaints is because the users do not have excuse to complain. With the "require explicit .", it is because the users won't get hurt in the first place.

Show 8 quoted lines
> I dunno. I am not all that excited about this patch, due to all of the
> caveats that we need to communicate to the user. The current warning has
> annoyed me a few times, but perhaps it is still too soon, and my fingers
> and brain just need retraining. I think a config option could help some
> people, but maybe it will end up hurting more.  I'm inclined at this
> point to table the patch for now and see how I feel in a few weeks.
>
> I do think patch 1/2 makes sense regardless.
These two concluding paragraphs match my current thinking.
Thanks.
Previous: Jeff KingNext: Matthieu Moy
Message 22 of 51 in “"git add -u/-A" from future”
  1. 0/2 "git add -u/-A" from futureJunio C Hamano, Mar 8, 2013
  2. 1/2 require pathspec for "git add -u/-A"Junio C Hamano, Mar 8, 2013
  3. Matthieu MoyMar 10, 2013
  4. Junio C HamanoMar 11, 2013
  5. Matthieu MoyMar 11, 2013
  6. 1/2 add: update pathless 'add [-u|-A]' warning to reflect change of planMatthieu Moy, Mar 11, 2013
  7. 2/2 add: add a newline at the end of pathless 'add [-u|-A]' warningMatthieu Moy, Mar 11, 2013
  8. Junio C HamanoMar 11, 2013
  9. Matthieu MoyApr 2, 2013
  10. Junio C HamanoApr 2, 2013
  11. Matthieu MoyApr 2, 2013
  12. Jeff KingMar 12, 2013
  13. Matthieu MoyMar 12, 2013
  14. Jeff KingMar 13, 2013
  15. 1/2 t2200: check that "add -u" limits itself to subdirectoryJeff King, Mar 13, 2013
  16. Matthieu MoyMar 13, 2013
  17. Junio C HamanoMar 13, 2013
  18. Jeff KingMar 14, 2013
  19. 2/2 add: respect add.updateroot config optionJeff King, Mar 13, 2013
  20. Matthieu MoyMar 13, 2013
  21. Jeff KingMar 13, 2013
  22. Junio C HamanoMar 13, 2013
  23. Matthieu MoyMar 14, 2013
  24. 0/4 make pathless 'add [-u|-A]' warning less noisyJonathan Nieder, Mar 19, 2013
  25. 1/4 add: make pathless 'add [-u|-A]' warning a file-global functionJonathan Nieder, Mar 19, 2013
  26. 2/4 add: make warn_pathless_add() a no-op after first callJonathan Nieder, Mar 19, 2013
  27. 3/4 add -u: only show pathless 'add -u' warning when changes exist outside cwdJonathan Nieder, Mar 19, 2013
  28. Junio C HamanoMar 19, 2013
  29. Jonathan NiederMar 19, 2013
  30. Junio C HamanoMar 19, 2013
  31. Jonathan NiederMar 19, 2013
  32. Duy NguyenMar 19, 2013
  33. Jonathan NiederMar 19, 2013
  34. Matthieu MoyMar 19, 2013
  35. Junio C HamanoMar 19, 2013
  36. Jonathan NiederMar 19, 2013
  37. Junio C HamanoMar 19, 2013
  38. Jonathan NiederMar 19, 2013
  39. 4/4 add -A: only show pathless 'add -A' warning when changes exist outside cwdJonathan Nieder, Mar 19, 2013
  40. Jeff KingMar 19, 2013
  41. 2/2 git add: -u/-A now affects the entire working treeJunio C Hamano, Mar 8, 2013
  42. 0/6 make pathless 'add [-u|-A]' warning less noisyJonathan Nieder, Mar 19, 2013
  43. 1/6 t2200: check that "add -u" limits itself to subdirectoryJonathan Nieder, Mar 19, 2013
  44. 2/6 add: make pathless 'add [-u|-A]' warning a file-global functionJonathan Nieder, Mar 19, 2013
  45. 3/6 add: make warn_pathless_add() a no-op after first callJonathan Nieder, Mar 19, 2013
  46. 4/6 add -u: only show pathless 'add -u' warning when changes exist outside cwdJonathan Nieder, Mar 19, 2013
  47. Jeff KingMar 20, 2013
  48. Junio C HamanoMar 20, 2013
  49. 5/6 add -A: only show pathless 'add -A' warning when changes exist outside cwdJonathan Nieder, Mar 19, 2013
  50. Junio C HamanoMar 20, 2013
  51. 6/6 git add: -u/-A now affects the entire working treeJonathan Nieder, Mar 19, 2013

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.