distrib/gitblit.properties | ●●●●● patch | view | raw | blame | history | |
docs/04_releases.mkd | ●●●●● patch | view | raw | blame | history | |
src/com/gitblit/GitBlit.java | ●●●●● patch | view | raw | blame | history | |
src/com/gitblit/utils/JGitUtils.java | ●●●●● patch | view | raw | blame | history | |
tests/com/gitblit/tests/JGitUtilsTest.java | ●●●●● patch | view | raw | blame | history |
distrib/gitblit.properties
@@ -2,7 +2,9 @@ # Git Servlet Settings # # Base folder for repositories # Base folder for repositories. # This folder may contain bare and non-bare repositories but Gitblit will only # allow you to push to bare repositories. # Use forward slashes even on Windows!! # e.g. c:/gitrepos # @@ -28,6 +30,13 @@ # SINCE 0.5.0 git.enableGitServlet = true # Only serve/display bare repositories. # If there are non-bare repositories in git.repositoriesFolder and this setting # is true, they will be excluded from the ui. # # SINCE 0.9.0 git.onlyAccessBareRepositories = false # # Groovy Integration # docs/04_releases.mkd
@@ -11,6 +11,8 @@ #### additions - New setting to prevent display/serving non-bare repositories **New:** *git.onlyAccessBareRepositories = false* - Allow relinking HEAD to a branch or a tag (Github/plm) #### fixes src/com/gitblit/GitBlit.java
@@ -123,8 +123,6 @@ private File repositoriesFolder; private boolean exportAll = true; private IUserService userService; private IStoredSettings settings; @@ -642,7 +640,8 @@ * @return list of all repositories */ public List<String> getRepositoryList() { return JGitUtils.getRepositoryList(repositoriesFolder, exportAll, return JGitUtils.getRepositoryList(repositoriesFolder, settings.getBoolean(Keys.git.onlyAccessBareRepositories, false), settings.getBoolean(Keys.git.searchRepositoriesSubfolders, true)); } @@ -1767,7 +1766,7 @@ this.settings = settings; repositoriesFolder = getRepositoriesFolder(); logger.info("Git repositories folder " + repositoriesFolder.getAbsolutePath()); repositoryResolver = new FileResolver<Void>(repositoriesFolder, exportAll); repositoryResolver = new FileResolver<Void>(repositoriesFolder, true); serverStatus = new ServerStatus(isGO()); String realm = settings.getString(Keys.realm.userService, "users.properties"); IUserService loginService = null; src/com/gitblit/utils/JGitUtils.java
@@ -290,21 +290,21 @@ * Returns a list of repository names in the specified folder. * * @param repositoriesFolder * @param exportAll * if true, all repositories are listed. If false only the * repositories with a "git-daemon-export-ok" file are included * @param onlyBare * if true, only bare repositories repositories are listed. If * false all repositories are included. * @param searchSubfolders * recurse into subfolders to find grouped repositories * @return list of repository names */ public static List<String> getRepositoryList(File repositoriesFolder, boolean exportAll, public static List<String> getRepositoryList(File repositoriesFolder, boolean onlyBare, boolean searchSubfolders) { List<String> list = new ArrayList<String>(); if (repositoriesFolder == null || !repositoriesFolder.exists()) { return list; } list.addAll(getRepositoryList(repositoriesFolder.getAbsolutePath(), repositoriesFolder, exportAll, searchSubfolders)); onlyBare, searchSubfolders)); StringUtils.sortRepositorynames(list); return list; } @@ -316,24 +316,21 @@ * basePath is stripped from the repository name as repositories * are relative to this path * @param searchFolder * @param exportAll * if true all repositories are listed. If false only the * repositories with a "git-daemon-export-ok" file are included * @param onlyBare * if true only bare repositories will be listed. if false all * repositories are included. * @param searchSubfolders * recurse into subfolders to find grouped repositories * @return */ private static List<String> getRepositoryList(String basePath, File searchFolder, boolean exportAll, boolean searchSubfolders) { boolean onlyBare, boolean searchSubfolders) { List<String> list = new ArrayList<String>(); for (File file : searchFolder.listFiles()) { if (file.isDirectory()) { File gitDir = FileKey.resolve(new File(searchFolder, file.getName()), FS.DETECTED); if (gitDir != null) { boolean exportRepository = exportAll || new File(gitDir, "git-daemon-export-ok").exists(); if (!exportRepository) { if (onlyBare && gitDir.getName().equals(".git")) { continue; } // determine repository name relative to base path @@ -342,7 +339,7 @@ list.add(repository); } else if (searchSubfolders && file.canRead()) { // look for repositories in subfolders list.addAll(getRepositoryList(basePath, file, exportAll, searchSubfolders)); list.addAll(getRepositoryList(basePath, file, onlyBare, searchSubfolders)); } } } tests/com/gitblit/tests/JGitUtilsTest.java
@@ -66,7 +66,7 @@ @Test public void testFindRepositories() { List<String> list = JGitUtils.getRepositoryList(null, true, true); List<String> list = JGitUtils.getRepositoryList(null, false, true); assertEquals(0, list.size()); list.addAll(JGitUtils.getRepositoryList(new File("DoesNotExist"), true, true)); assertEquals(0, list.size());