commit-graph.c: ensure graph layers respect core.sharedRepository
Non-layered commit-graphs use 'adjust_shared_perm' to make the commit-graph file readable (or not) to a combination of the user, group, and others. Call 'adjust_shared_perm' for split-graph layers to make sure that these also respect 'core.sharedRepository'. The 'commit-graph-chain' file already respects this configuration since it uses 'hold_lock_file_for_update' (which calls 'adjust_shared_perm' eventually in 'create_tempfile_mode'). Suggested-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Taylor Blau <me@ttaylorr.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
1f9becaedc
commit
f4d62847a4
@ -1386,6 +1386,12 @@ static int write_commit_graph_file(struct write_commit_graph_context *ctx)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (adjust_shared_perm(ctx->graph_name)) {
|
||||||
|
error(_("unable to adjust shared permissions for '%s'"),
|
||||||
|
ctx->graph_name);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
f = hashfd(fd, ctx->graph_name);
|
f = hashfd(fd, ctx->graph_name);
|
||||||
} else {
|
} else {
|
||||||
hold_lock_file_for_update_mode(&lk, ctx->graph_name,
|
hold_lock_file_for_update_mode(&lk, ctx->graph_name,
|
||||||
|
@ -36,6 +36,10 @@ graph_read_expect() {
|
|||||||
test_cmp expect output
|
test_cmp expect output
|
||||||
}
|
}
|
||||||
|
|
||||||
|
test_expect_success POSIXPERM 'tweak umask for modebit tests' '
|
||||||
|
umask 022
|
||||||
|
'
|
||||||
|
|
||||||
test_expect_success 'create commits and write commit-graph' '
|
test_expect_success 'create commits and write commit-graph' '
|
||||||
for i in $(test_seq 3)
|
for i in $(test_seq 3)
|
||||||
do
|
do
|
||||||
@ -351,4 +355,22 @@ test_expect_success 'split across alternate where alternate is not split' '
|
|||||||
test_cmp commit-graph .git/objects/info/commit-graph
|
test_cmp commit-graph .git/objects/info/commit-graph
|
||||||
'
|
'
|
||||||
|
|
||||||
|
while read mode modebits
|
||||||
|
do
|
||||||
|
test_expect_success POSIXPERM "split commit-graph respects core.sharedrepository $mode" '
|
||||||
|
rm -rf $graphdir $infodir/commit-graph &&
|
||||||
|
git reset --hard commits/1 &&
|
||||||
|
test_config core.sharedrepository "$mode" &&
|
||||||
|
git commit-graph write --split --reachable &&
|
||||||
|
ls $graphdir/graph-*.graph >graph-files &&
|
||||||
|
test_line_count = 1 graph-files &&
|
||||||
|
echo "$modebits" >expect &&
|
||||||
|
test_modebits $graphdir/graph-*.graph >actual &&
|
||||||
|
test_cmp expect actual
|
||||||
|
'
|
||||||
|
done <<\EOF
|
||||||
|
0666 -r--r--r--
|
||||||
|
0600 -r--------
|
||||||
|
EOF
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
Reference in New Issue
Block a user