submodule: add a helper to check if it is safe to write to .gitmodules
authorAntonio Ospite <ao2@ao2.it>
Fri, 5 Oct 2018 13:05:59 +0000 (15:05 +0200)
committerJunio C Hamano <gitster@pobox.com>
Tue, 9 Oct 2018 03:40:21 +0000 (12:40 +0900)
commitb5c259f226ba06f64b399ff4c6b843542352395f
treeb7cd20784b013f6bc2f788b399a047c087aae5bf
parent23dd8f5bb104d01b90e2f7a3f2e1acf0a205083e
submodule: add a helper to check if it is safe to write to .gitmodules

Introduce a helper function named is_writing_gitmodules_ok() to verify
that the .gitmodules file is safe to write.

The function name follows the scheme of is_staging_gitmodules_ok().

The two symbolic constants GITMODULES_INDEX and GITMODULES_HEAD are used
to get help from the C preprocessor in preventing typos, especially for
future users.

This is in preparation for a future change which teaches git how to read
.gitmodules from the index or from the current branch if the file is not
available in the working tree.

The rationale behind the check is that writing to .gitmodules requires
the file to be present in the working tree, unless a brand new
.gitmodules is being created (in which case the .gitmodules file would
not exist at all: neither in the working tree nor in the index or in the
current branch).

Expose the functionality also via a "submodule-helper config
--check-writeable" command, as git scripts may want to perform the check
before modifying submodules configuration.

Signed-off-by: Antonio Ospite <ao2@ao2.it>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/submodule--helper.c
cache.h
submodule.c
submodule.h
t/t7411-submodule-config.sh