summaryrefslogtreecommitdiff
path: root/path.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2015-12-08 22:14:49 (GMT)
committerJunio C Hamano <gitster@pobox.com>2015-12-08 22:14:49 (GMT)
commitb1cda70fff238aa8947dc8b527dc4a5f6bd4ede0 (patch)
treebbb316ed03593eb48779bb5fa60dbce0c5614161 /path.c
parentfa5f2398e5163f855b0a680b0bf704e2c2e7da24 (diff)
parent0845122c39c415fa50904ee94c6b60e4e722466b (diff)
downloadgit-b1cda70fff238aa8947dc8b527dc4a5f6bd4ede0.zip
git-b1cda70fff238aa8947dc8b527dc4a5f6bd4ede0.tar.gz
git-b1cda70fff238aa8947dc8b527dc4a5f6bd4ede0.tar.bz2
Merge branch 'dt/refs-backend-pre-vtable'
Code preparation for pluggable ref backends. * dt/refs-backend-pre-vtable: refs: break out ref conflict checks files_log_ref_write: new function initdb: make safe_create_dir public refs: split filesystem-based refs code into a new file refs/refs-internal.h: new header file refname_is_safe(): improve docstring pack_if_possible_fn(): use ref_type() instead of is_per_worktree_ref() copy_msg(): rename to copy_reflog_msg() verify_refname_available(): new function verify_refname_available(): rename function
Diffstat (limited to 'path.c')
-rw-r--r--path.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/path.c b/path.c
index f28ace2..3cd155e 100644
--- a/path.c
+++ b/path.c
@@ -740,6 +740,18 @@ int adjust_shared_perm(const char *path)
return 0;
}
+void safe_create_dir(const char *dir, int share)
+{
+ if (mkdir(dir, 0777) < 0) {
+ if (errno != EEXIST) {
+ perror(dir);
+ exit(1);
+ }
+ }
+ else if (share && adjust_shared_perm(dir))
+ die(_("Could not make %s writable by group"), dir);
+}
+
static int have_same_root(const char *path1, const char *path2)
{
int is_abs1, is_abs2;