Florian Zschocke
2013-08-20 3a067e5b667bb30b7ddd18f7860358d725f01219
Add new property git.createRepositoriesShared.
2 files modified
18 ■■■■■ changed files
src/main/distrib/data/gitblit.properties 9 ●●●●● patch | view | raw | blame | history
src/main/java/com/gitblit/GitBlit.java 9 ●●●● patch | view | raw | blame | history
src/main/distrib/data/gitblit.properties
@@ -174,6 +174,15 @@
# SINCE 1.3.0
git.defaultIncrementalPushTagPrefix = r
# In an Unix environment where mixed access methods exist for shared repositories,
# the repository should be created with 'git init --shared' to make sure that
# it can be accessed e.g. via ssh (user git) and http (user www-data).
# Valid values are the values available for the '--shared' option. The the manual
# page for 'git init' for more information on shared repositories.
#
# SINCE 1.3.2
git.createRepositoriesShared = false
# Enable JGit-based garbage collection. (!!EXPERIMENTAL!!)
#
# USE AT YOUR OWN RISK!
src/main/java/com/gitblit/GitBlit.java
@@ -2426,7 +2426,8 @@
            }
            // create repository
            logger.info("create repository " + repository.name);
            r = JGitUtils.createRepository(repositoriesFolder, repository.name);
            String shared = getString(Keys.git.createRepositoriesShared, "FALSE");
            r = JGitUtils.createRepository(repositoriesFolder, repository.name, shared);
        } else {
            // rename repository
            if (!repositoryName.equalsIgnoreCase(repository.name)) {
@@ -2529,6 +2530,12 @@
            r.close();
        }
        
        // Adjust permissions in case we updated the config files
        JGitUtils.adjustSharedPerm(new File(r.getDirectory().getAbsolutePath(), "config"),
                getString(Keys.git.createRepositoriesShared, "FALSE"));
        JGitUtils.adjustSharedPerm(new File(r.getDirectory().getAbsolutePath(), "HEAD"),
                getString(Keys.git.createRepositoriesShared, "FALSE"));
        // update repository cache
        removeFromCachedRepositoryList(repositoryName);
        // model will actually be replaced on next load because config is stale