Files
git/builtin
Junio C Hamano d226b14d47 git add: rework the logic to warn "git add <pathspec>..." default change
The earlier logic to warn against "git add subdir" that is run
without "-A" or "--no-all" was only to check any <pathspec> given
exactly spells a directory name that (still) exists on the
filesystem.  This had number of problems:

 * "git add '*dir'" (note that the wildcard is hidden from the
   shell) would not trigger the warning.

 * "git add '*.py'" would behave differently between the current
   version of Git and Git 2.0 for the same reason as "subdir", but
   would not trigger the warning.

 * "git add dir" for a submodule "dir" would just update the index
   entry for the submodule "dir" without ever recursing into it, and
   use of "-A" or "--no-all" would matter.  But the logic only
   checks the directory-ness of "dir" and gives an unnecessary
   warning.

Rework the logic to detect the case where the behaviour will be
different in Git 2.0, and issue a warning only when it matters.
Even with the code before this warning, "git add subdir" will have
to traverse the directory in order to find _new_ files the index
does not know about _anyway_, so we can do this check without adding
an extra pass to find if <pathspec> matches any removed file.

This essentially updates the "add_files_to_cache()" public API to
"update_files_in_cache()" API that is internal to "git add", because
with the "--all" option, the function is no longer about "adding"
paths to the cache, but is also used to remove them.

There are other callers of the former from "checkout" (used when
"checkout -m" prepares the temporary tree that represents the local
modifications to be merged) and "commit" ("commit --include" that
picks up local changes in addition to what is in the index).  Since
ADD_CACHE_IGNORE_ERRORS (aka "--no-all") is not used by either of
them, once dust settles after Git 2.0 and the warning becomes
unnecessary, we may want to unify these two functions again.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-04-17 17:42:48 -07:00
..
2013-02-07 14:41:38 -08:00
2012-09-17 15:59:34 -07:00
2013-01-23 21:19:10 -08:00
2013-02-12 12:23:12 -08:00
2012-10-25 06:42:27 -04:00
2012-11-20 10:32:10 -08:00
2013-02-01 12:40:16 -08:00
2012-09-27 17:57:26 -07:00
2013-01-20 17:06:53 -08:00
2013-01-23 21:19:10 -08:00
2012-09-11 11:36:05 -07:00
2012-12-26 14:46:15 -08:00
2013-02-04 10:23:49 -08:00
2013-01-16 12:48:22 -08:00
2012-10-25 06:42:27 -04:00
2012-09-14 11:53:53 -07:00
2013-02-04 10:25:04 -08:00
2013-02-17 15:25:57 -08:00
2012-11-26 13:27:45 -08:00
2012-10-29 03:08:30 -04:00
2012-11-29 12:52:30 -08:00
2013-01-20 17:06:53 -08:00
2012-10-25 06:42:27 -04:00
2013-01-16 12:48:22 -08:00
2013-01-16 12:48:22 -08:00