Skip to content

Commit

Permalink
git add: --ignore-removal is a better named --no-all
Browse files Browse the repository at this point in the history
In the historical context of "git add --all ." that pays attention
to "all kinds of changes" (implying "without ignoring removals"),
the option to countermand it "--no-all" may have made sense, but
because we will be making "--all" the default when a pathspec is
given, it makes more sense to rename the option to a more explicit
"--ignore-removal".  The "--all" option naturally becomes its
negation, "--no-ignore-removal".

Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Junio C Hamano committed Apr 22, 2013
1 parent 118f60e commit 9f60f49
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 4 deletions.
10 changes: 6 additions & 4 deletions Documentation/git-add.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ SYNOPSIS
--------
[verse]
'git add' [-n] [-v] [--force | -f] [--interactive | -i] [--patch | -p]
[--edit | -e] [--[no-]all | [--update | -u]] [--intent-to-add | -N]
[--refresh] [--ignore-errors] [--ignore-missing] [--]
[<pathspec>...]
[--edit | -e] [--[no-]all | --[no-]ignore-removal | [--update | -u]]
[--intent-to-add | -N] [--refresh] [--ignore-errors] [--ignore-missing]
[--] [<pathspec>...]

DESCRIPTION
-----------
Expand Down Expand Up @@ -111,6 +111,7 @@ of Git, hence the form without <pathspec> should not be used.

-A::
--all::
--no-ignore-removal::
Update the index not only where the working tree has a file
matching <pathspec> but also where the index already has an
entry. This adds, modifies, and removes index entries to
Expand All @@ -122,6 +123,7 @@ and its subdirectories. This default will change in a future version
of Git, hence the form without <pathspec> should not be used.

--no-all::
--ignore-removal::
Update the index by adding new files that are unknown to the
index and files modified in the working tree, but ignore
files that have been removed from the working tree. This
Expand All @@ -130,7 +132,7 @@ of Git, hence the form without <pathspec> should not be used.
This option is primarily to help the current users of Git, whose
"git add <pathspec>..." ignores removed files. In future versions
of Git, "git add <pathspec>..." will be a synonym to "git add -A
<pathspec>..." and "git add --no-all <pathspec>..." will behave like
<pathspec>..." and "git add --ignore-removal <pathspec>..." will behave like
today's "git add <pathspec>...", ignoring removed files.

-N::
Expand Down
11 changes: 11 additions & 0 deletions builtin/add.c
Original file line number Diff line number Diff line change
Expand Up @@ -382,6 +382,13 @@ static int ignore_add_errors, intent_to_add, ignore_missing;
static int addremove = ADDREMOVE_DEFAULT;
static int addremove_explicit = -1; /* unspecified */

static int ignore_removal_cb(const struct option *opt, const char *arg, int unset)
{
/* if we are told to ignore, we are not adding removals */
*(int *)opt->value = !unset ? 0 : 1;
return 0;
}

static struct option builtin_add_options[] = {
OPT__DRY_RUN(&show_only, N_("dry run")),
OPT__VERBOSE(&verbose, N_("be verbose")),
Expand All @@ -393,6 +400,10 @@ static struct option builtin_add_options[] = {
OPT_BOOL('u', "update", &take_worktree_changes, N_("update tracked files")),
OPT_BOOL('N', "intent-to-add", &intent_to_add, N_("record only the fact that the path will be added later")),
OPT_BOOL('A', "all", &addremove_explicit, N_("add changes from all tracked and untracked files")),
{ OPTION_CALLBACK, 0, "ignore-removal", &addremove_explicit,
NULL /* takes no arguments */,
N_("ignore paths removed in the working tree (same as --no-all)"),
PARSE_OPT_NOARG, ignore_removal_cb },
OPT_BOOL( 0 , "refresh", &refresh_only, N_("don't add, only refresh the index")),
OPT_BOOL( 0 , "ignore-errors", &ignore_add_errors, N_("just skip files which cannot be added because of errors")),
OPT_BOOL( 0 , "ignore-missing", &ignore_missing, N_("check if - even missing - files are ignored in dry run")),
Expand Down

0 comments on commit 9f60f49

Please sign in to comment.