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

Re: [PATCH v3] add: warn when -u or -A is used without filepattern

From
Junio C Hamano <gitster@pobox.com>
Date
Jan 28, 2013, 18:07 UTC
Message-ID
<7v4ni1xjuc.fsf@alter.siamese.dyndns.org>
In-Reply-To
<51067353.2090006@drmicha.warpmail.net>
Michael J Gruber <git@drmicha.warpmail.net> writes:
Show 12 quoted lines
> Matthieu Moy venit, vidit, dixit 28.01.2013 10:16:
>> Most git commands that can be used with our without a filepattern are
>> tree-wide by default, the filepattern being used to restrict their scope.
>> A few exceptions are: 'git grep', 'git clean', 'git add -u' and 'git add -A'.
>
> Since I didn't follow this thread, my first reaction was: "Huh? Aren't
> they treewide?" (for the relative tree)
>
> So, for someone reading just the commit message, it would be helpful to
> say what the others do, i.e. default to the relative tree at pwd (rather
> than defaulting to an empty tree, or all files whether tracked or not,
> or...).

I think "add -u && commit" vs "commit -a" you brought up is a good thing to mention, so let's do this. Another tweak is that I did s/filepattern/pathspec/ here. I know that both the documentation and the help text for "git add" say filepattern, but we say pathspec starting from glossary fairly consistently everywhere in the rest of the system.

We should probably update the documentation/help for "git add", but that is entirely a separate topic.

    add: warn when -u or -A is used without pathspec
    
    Most Git commands that can be used with or without pathspec operate
    tree-wide by default, the pathspec being used to restrict their
    scope.  A few exceptions are: 'git grep', 'git clean', 'git add -u'
    and 'git add -A'.  When run in a subdirectory without pathspec, they
    operate only on paths in the current directory.
    
    The inconsistency of 'git add -u' and 'git add -A' are particularly
    problematic since other 'git add' subcommands (namely 'git add -p'
    and 'git add -e') are tree-wide by default.  It also means that "git
    add -u && git commit" will record a state that is different from
    what is recorded with "git commit -a".
    
    Flipping the default now is unacceptable, so let's start training
    users to type 'git add -u|-A :/' or 'git add -u|-A .' explicitly, to
    prepare for the next steps:
    
    * forbid 'git add -u|-A' without pathspec (like 'git add' without
      option)
    
    * much later, maybe, re-allow 'git add -u|-A' without pathspec, that
      will add all tracked and modified files, or all files, tree-wide.
    
    A nice side effect of this patch is that it makes the :/ magic
    pathspec easier to discover for users.
    
    When the command is called from the root of the tree, there is no
    ambiguity and no need to change the behavior, hence no need to warn.
    
    Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Previous: Michael J GruberNext: Matthieu Moy
Message 45 of 53 in “[RFC] git rm -u”
  1. Eric James Michael RitzJan 19, 2013
  2. Tomas CarneckyJan 19, 2013
  3. Antoine PelisseJan 19, 2013
  4. Eric James Michael RitzJan 19, 2013
  5. Junio C HamanoFeb 25, 2013
  6. Antoine PelisseFeb 25, 2013
  7. Matthieu MoyFeb 25, 2013
  8. Antoine PelisseFeb 25, 2013
  9. Matthieu MoyFeb 25, 2013
  10. Junio C HamanoFeb 25, 2013
  11. Jonathan NiederJan 19, 2013
  12. Eric James Michael RitzJan 19, 2013
  13. Matthieu MoyJan 20, 2013
  14. Junio C HamanoJan 20, 2013
  15. Junio C HamanoJan 20, 2013
  16. Martin von ZweigbergkJan 20, 2013
  17. Matthieu MoyJan 21, 2013
  18. Junio C HamanoJan 20, 2013
  19. Eric James Michael RitzJan 20, 2013
  20. Piotr KrukowieckiJan 21, 2013
  21. Matthieu MoyJan 21, 2013
  22. Junio C HamanoJan 21, 2013
  23. Junio C HamanoJan 21, 2013
  24. Matthieu MoyJan 21, 2013
  25. Junio C HamanoJan 21, 2013
  26. Piotr KrukowieckiJan 21, 2013
  27. add: warn when -u or -A is used without filepatternMatthieu Moy, Jan 21, 2013
  28. Robin RosenbergJan 21, 2013
  29. Matthieu MoyJan 21, 2013
  30. Robin RosenbergJan 21, 2013
  31. Junio C HamanoJan 21, 2013
  32. Piotr KrukowieckiJan 21, 2013
  33. Matthieu MoyJan 21, 2013
  34. Matthieu MoyJan 21, 2013
  35. Jonathan NiederJan 21, 2013
  36. Matthieu MoyJan 22, 2013
  37. add: warn when -u or -A is used without filepatternMatthieu Moy, Jan 25, 2013
  38. Junio C HamanoJan 25, 2013
  39. Matthieu MoyJan 27, 2013
  40. Junio C HamanoJan 27, 2013
  41. Matthieu MoyJan 28, 2013
  42. add: warn when -u or -A is used without filepatternMatthieu Moy, Jan 28, 2013
  43. Jonathan NiederJan 28, 2013
  44. Michael J GruberJan 28, 2013
  45. Junio C HamanoJan 28, 2013
  46. Matthieu MoyJan 28, 2013
  47. Junio C HamanoJan 28, 2013
  48. Junio C HamanoFeb 14, 2013
  49. Junio C HamanoFeb 14, 2013
  50. Matthieu MoyFeb 15, 2013
  51. Jonathan NiederJan 27, 2013
  52. Duy NguyenJan 22, 2013
  53. Junio C HamanoJan 22, 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.