submodule: rename and add flags to ok_to_remove_submodule
authorStefan Beller <sbeller@google.com>
Tue, 20 Dec 2016 23:20:11 +0000 (15:20 -0800)
committerJunio C Hamano <gitster@pobox.com>
Tue, 27 Dec 2016 22:19:35 +0000 (14:19 -0800)
commit83b7696605dbea3eb4e878cf904159f398345aa9
treed1fe20f8be9d48bf1f37289339d4d571d87fdb1a
parent5a1c824f70ec261f8f9e5e039555fc80301dee0b
submodule: rename and add flags to ok_to_remove_submodule

In different contexts the question "Is it ok to delete a submodule?"
may be answered differently.

In 293ab15eea (submodule: teach rm to remove submodules unless they
contain a git directory, 2012-09-26) a case was made that we can safely
ignore ignored untracked files for removal as we explicitely ask for the
removal of the submodule.

In a later patch we want to remove submodules even when the user doesn't
explicitly ask for it (e.g. checking out a tree-ish in which the submodule
doesn't exist).  In that case we want to be more careful when it comes
to deletion of untracked files. As of this patch it is unclear how this
will be implemented exactly, so we'll offer flags in which the caller
can specify how the different untracked files ought to be handled.

As the flags allow the function to not die on an error when spawning
a child process, we need to find an appropriate return code for the
case when the child process could not be started. As in that case we
cannot tell if the submodule is ok to remove, we'd want to return 'false'.

As only 0 is understood as false, rename the function to invert the
meaning, i.e. the return code of 0 signals the removal of the submodule
is fine, and other values can be used to return a more precise answer
what went wrong.

Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/rm.c
submodule.c
submodule.h