Class InMemoryRepository
java.lang.Object
org.eclipse.jgit.lib.Repository
org.eclipse.jgit.internal.storage.dfs.DfsRepository
org.eclipse.jgit.internal.storage.dfs.InMemoryRepository
- All Implemented Interfaces:
AutoCloseable
Git repository stored entirely in the local process memory.
This implementation builds on the DFS repository by storing all reference and object data in the local process. It is not very efficient and exists only for unit testing and small experiments.
The repository is thread-safe. Memory used is released only when this object is garbage collected. Closing the repository has no impact on its memory.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
Builder for in-memory repositories.private static class
static class
DfsObjDatabase used by InMemoryRepository.private static class
protected class
DfsRefDatabase used by InMemoryRepository.private static class
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate String
private final InMemoryRepository.MemObjDatabase
(package private) static final AtomicInteger
private final InMemoryRepository.MemRefDatabase
-
Constructor Summary
ConstructorsConstructorDescriptionInMemoryRepository
(DfsRepositoryDescription repoDesc) Initialize a new in-memory repository. -
Method Summary
Modifier and TypeMethodDescriptionRead theGIT_DIR/description
file for gitweb.Get the object database which stores this repository's data.Get the reference database which stores the reference namespace.void
Set theGIT_DIR/description
file for gitweb.void
setPerformsAtomicTransactions
(boolean atomic) Enable (or disable) the atomic reference transaction support.Methods inherited from class org.eclipse.jgit.internal.storage.dfs.DfsRepository
create, createAttributesNodeProvider, exists, getConfig, getDescription, getIdentifier, getReflogReader, notifyIndexChanged, scanForRepoChanges
Methods inherited from class org.eclipse.jgit.lib.Repository
autoGC, close, create, doClose, exactRef, findRef, fireEvent, getAdditionalHaves, getAllRefs, getAllRefsByPeeledObjectId, getBranch, getDirectory, getFS, getFullBranch, getGlobalListenerList, getIndexFile, getInitialBranch, getListenerList, getRemoteName, getRemoteNames, getRepositoryState, getTags, getWorkTree, hasObject, incrementOpen, isBare, isValidRefName, lockDirCache, newObjectInserter, newObjectReader, normalizeBranchName, open, open, parseCommit, peel, readCherryPickHead, readCommitEditMsg, readDirCache, readMergeCommitMsg, readMergeHeads, readOrigHead, readRebaseTodo, readRevertHead, readSquashCommitMsg, renameRef, resolve, shortenRefName, shortenRemoteBranchName, simplify, stripWorkDir, toString, updateRef, updateRef, writeCherryPickHead, writeCommitEditMsg, writeMergeCommitMsg, writeMergeHeads, writeOrigHead, writeRebaseTodoFile, writeRevertHead, writeSquashCommitMsg
-
Field Details
-
packId
-
objdb
-
refdb
-
gitwebDescription
-
-
Constructor Details
-
InMemoryRepository
Initialize a new in-memory repository.- Parameters:
repoDesc
- description of the repository.
-
InMemoryRepository
InMemoryRepository(InMemoryRepository.Builder builder)
-
-
Method Details
-
getObjectDatabase
Get the object database which stores this repository's data.- Specified by:
getObjectDatabase
in classDfsRepository
- Returns:
- the object database which stores this repository's data.
-
getRefDatabase
Get the reference database which stores the reference namespace.- Specified by:
getRefDatabase
in classRepository
- Returns:
- the reference database which stores the reference namespace.
-
setPerformsAtomicTransactions
public void setPerformsAtomicTransactions(boolean atomic) Enable (or disable) the atomic reference transaction support.Useful for testing atomic support enabled or disabled.
- Parameters:
atomic
- whether to use atomic reference transaction support
-
getGitwebDescription
Read theGIT_DIR/description
file for gitweb.- Overrides:
getGitwebDescription
in classRepository
- Returns:
- description text; null if no description has been configured.
-
setGitwebDescription
Set theGIT_DIR/description
file for gitweb.- Overrides:
setGitwebDescription
in classRepository
- Parameters:
d
- new description; null to clear the description.
-