summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2015-01-14 12:30:26 -0800
committerJunio C Hamano <gitster@pobox.com>2015-01-14 12:30:27 -0800
commit6d9f0c7c0de61776f61e8674bf080f2a2241832c (patch)
tree6827f34410792c3705c5c2e7cf339f624f64ab58
parent7fd92d9ed0255faf64ed78f02eadc902c7824008 (diff)
parentd91175b2128aeae00ed10cd7e8216a60ca66e06b (diff)
downloadgit-6d9f0c7c0de61776f61e8674bf080f2a2241832c.tar.gz
Merge branch 'jk/prune-packed-server-info'
Fix recent breakage in Git 2.2 that started creating info/refs and objects/info/packs files with permission bits tighter than user's umask. * jk/prune-packed-server-info: update-server-info: create info/* with mode 0666 t1301: set umask in reflog sharedrepository=group test
-rw-r--r--server-info.c2
-rwxr-xr-xt/t1301-shared-repo.sh11
2 files changed, 12 insertions, 1 deletions
diff --git a/server-info.c b/server-info.c
index 31f4a749fb..34b0253177 100644
--- a/server-info.c
+++ b/server-info.c
@@ -17,7 +17,7 @@ static int update_info_file(char *path, int (*generate)(FILE *))
FILE *fp = NULL;
safe_create_leading_directories(path);
- fd = mkstemp(tmp);
+ fd = git_mkstemp_mode(tmp, 0666);
if (fd < 0)
goto out;
fp = fdopen(fd, "w");
diff --git a/t/t1301-shared-repo.sh b/t/t1301-shared-repo.sh
index de42d21c92..7eecfb836a 100755
--- a/t/t1301-shared-repo.sh
+++ b/t/t1301-shared-repo.sh
@@ -111,7 +111,18 @@ do
done
+test_expect_success POSIXPERM 'info/refs respects umask in unshared repo' '
+ rm -f .git/info/refs &&
+ test_unconfig core.sharedrepository &&
+ umask 002 &&
+ git update-server-info &&
+ echo "-rw-rw-r--" >expect &&
+ modebits .git/info/refs >actual &&
+ test_cmp expect actual
+'
+
test_expect_success POSIXPERM 'git reflog expire honors core.sharedRepository' '
+ umask 077 &&
git config core.sharedRepository group &&
git reflog expire --all &&
actual="$(ls -l .git/logs/refs/heads/master)" &&