]> git.ipfire.org Git - thirdparty/git.git/commit - read-cache.c
read-cache: make the split index obey umask settings
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Sun, 18 Nov 2018 19:04:29 +0000 (19:04 +0000)
committerJunio C Hamano <gitster@pobox.com>
Sun, 18 Nov 2018 23:29:02 +0000 (08:29 +0900)
commitc9d6c78870defec48dfa8bc1fd37ea51379e737d
tree2cf4f25e1de236f2381fe67d7b097218c9dd19be
parentcae598d9980661a978e2df4fb338518f7bf09572
read-cache: make the split index obey umask settings

Make the split index write out its .git/sharedindex_* files with the
same permissions as .git/index. This only changes the behavior when
core.sharedRepository isn't set, i.e. the user's umask settings will
be respected.

This hasn't been the case ever since the split index was originally
implemented in c18b80a0e8 ("update-index: new options to
enable/disable split index mode", 2014-06-13). A mkstemp()-like
function has always been used to create it. First mkstemp() itself,
and then later our own mkstemp()-like in
f6ecc62dbf ("write_shared_index(): use tempfile module", 2015-08-10)

A related bug was fixed in df801f3f9f ("read-cache: use shared perms
when writing shared index", 2017-06-25). Since then the split index
has respected core.sharedRepository.

However, using that setting should not be required simply to make git
obey the user's umask setting. It's intended for the use-case of
overriding whatever that umask is set to. This fixes cases where the
user has e.g. set his umask to 022 on a shared server in anticipation
of other user's needing to run "status", "log" etc. in his repository.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
read-cache.c
t/t1700-split-index.sh