git submodule add: Require the new --force option to add ignored paths
To make the behavior of "git submodule add" more consistent with "git add" ignored submodule paths should not be silently added when they match an entry in a .gitignore file. To be able to override that default behavior in the same way as we can do that for "git add", the new option "--force" is introduced. Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de> Acked-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
8fbe9b32ce
commit
d27b876b28
@ -5,7 +5,7 @@
|
||||
# Copyright (c) 2007 Lars Hjemli
|
||||
|
||||
dashless=$(basename "$0" | sed -e 's/-/ /')
|
||||
USAGE="[--quiet] add [-b branch] [--reference <repository>] [--] <repository> [<path>]
|
||||
USAGE="[--quiet] add [-b branch] [-f|--force] [--reference <repository>] [--] <repository> [<path>]
|
||||
or: $dashless [--quiet] status [--cached] [--recursive] [--] [<path>...]
|
||||
or: $dashless [--quiet] init [--] [<path>...]
|
||||
or: $dashless [--quiet] update [--init] [-N|--no-fetch] [--rebase] [--reference <repository>] [--merge] [--recursive] [--] [<path>...]
|
||||
@ -19,6 +19,7 @@ require_work_tree
|
||||
|
||||
command=
|
||||
branch=
|
||||
force=
|
||||
reference=
|
||||
cached=
|
||||
recursive=
|
||||
@ -133,6 +134,9 @@ cmd_add()
|
||||
branch=$2
|
||||
shift
|
||||
;;
|
||||
-f | --force)
|
||||
force=$1
|
||||
;;
|
||||
-q|--quiet)
|
||||
GIT_QUIET=1
|
||||
;;
|
||||
@ -201,6 +205,14 @@ cmd_add()
|
||||
git ls-files --error-unmatch "$path" > /dev/null 2>&1 &&
|
||||
die "'$path' already exists in the index"
|
||||
|
||||
if test -z "$force" && ! git add --dry-run --ignore-missing "$path" > /dev/null 2>&1
|
||||
then
|
||||
echo >&2 "The following path is ignored by one of your .gitignore files:" &&
|
||||
echo >&2 $path &&
|
||||
echo >&2 "Use -f if you really want to add it."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# perhaps the path exists and is already a git repo, else clone it
|
||||
if test -e "$path"
|
||||
then
|
||||
@ -234,7 +246,7 @@ cmd_add()
|
||||
) || die "Unable to checkout submodule '$path'"
|
||||
fi
|
||||
|
||||
git add --force "$path" ||
|
||||
git add $force "$path" ||
|
||||
die "Failed to add submodule '$path'"
|
||||
|
||||
git config -f .gitmodules submodule."$path".path "$path" &&
|
||||
|
Reference in New Issue
Block a user