Merge branch 'jk/prune-packed-server-info'
authorJunio C Hamano <gitster@pobox.com>
Wed, 14 Jan 2015 20:30:26 +0000 (12:30 -0800)
committerJunio C Hamano <gitster@pobox.com>
Wed, 14 Jan 2015 20:30:27 +0000 (12:30 -0800)
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

server-info.c
t/t1301-shared-repo.sh
index 31f4a749fbad73b9f7bc1f1ebf9b11fd743ab374..34b0253177a0e6d09e317064cd3ec31e26002520 100644 (file)
@@ -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");
index de42d21c922045415abedf3c81163682d0754eb5..7eecfb836a05cac56b8eca1ac56f67e8b22b1fbd 100755 (executable)
@@ -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)" &&