Package com.google.gerrit.server.git
Class LocalDiskRepositoryManager
- java.lang.Object
-
- com.google.gerrit.server.git.LocalDiskRepositoryManager
-
- All Implemented Interfaces:
GitRepositoryManager
- Direct Known Subclasses:
MultiBaseLocalDiskRepositoryManager
public class LocalDiskRepositoryManager extends Object implements GitRepositoryManager
Manages Git repositories stored on the local filesystem.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classLocalDiskRepositoryManager.Lifecyclestatic classLocalDiskRepositoryManager.Moduleprotected classLocalDiskRepositoryManager.ProjectVisitor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.eclipse.jgit.lib.RepositorycreateRepository(Project.NameKey name)Create (and open) a repository by name.PathgetBasePath(Project.NameKey name)Return the basePath under which the specified project is stored.SortedSet<Project.NameKey>list()org.eclipse.jgit.lib.RepositoryopenRepository(Project.NameKey name)Get (or open) a repository by name.protected voidscanProjects(LocalDiskRepositoryManager.ProjectVisitor visitor)
-
-
-
Method Detail
-
getBasePath
public Path getBasePath(Project.NameKey name)
Return the basePath under which the specified project is stored.- Parameters:
name- the name of the project- Returns:
- base directory
-
openRepository
public org.eclipse.jgit.lib.Repository openRepository(Project.NameKey name) throws org.eclipse.jgit.errors.RepositoryNotFoundException
Description copied from interface:GitRepositoryManagerGet (or open) a repository by name.- Specified by:
openRepositoryin interfaceGitRepositoryManager- Parameters:
name- the repository name, relative to the base directory.- Returns:
- the cached Repository instance. Caller must call
close()when done to decrement the resource handle. - Throws:
org.eclipse.jgit.errors.RepositoryNotFoundException- the name does not denote an existing repository.
-
createRepository
public org.eclipse.jgit.lib.Repository createRepository(Project.NameKey name) throws org.eclipse.jgit.errors.RepositoryNotFoundException, RepositoryCaseMismatchException, IOException
Description copied from interface:GitRepositoryManagerCreate (and open) a repository by name.- Specified by:
createRepositoryin interfaceGitRepositoryManager- Parameters:
name- the repository name, relative to the base directory.- Returns:
- the cached Repository instance. Caller must call
close()when done to decrement the resource handle. - Throws:
RepositoryCaseMismatchException- the name collides with an existing repository name, but only in case of a character within the name.org.eclipse.jgit.errors.RepositoryNotFoundException- the name is invalid.IOException- the repository cannot be created.
-
list
public SortedSet<Project.NameKey> list()
- Specified by:
listin interfaceGitRepositoryManager- Returns:
- set of all known projects, sorted by natural NameKey order.
-
scanProjects
protected void scanProjects(LocalDiskRepositoryManager.ProjectVisitor visitor)
-
-