public final class GitRepository extends Object
Instances are bound to a local folder with actual Git repository. If the repository does not exist yet, you
still have to provide a local file which indicates where the repository would be created when
GitClient.init(org.netbeans.libs.git.progress.ProgressMonitor)
was called.
To get an instance of GitClient
to run git commands with, use GitRepository.createClient()
method. It always returns
a new instance of the GitClient
, it is not shared among the callers.
When done with the client - you finish calling all desired commands and do not
plan to use the client's instance any more - GitClient.release()
must be called.
When all created clients are released this way, repository metadata are flushed,
all open metadata files are closed and thus do not block any external tools
(such as a commandline client).
Internally the class keeps a map of its instances that are cached under
a weak reference to the instance of the local file passed in the GitRepository.getInstance(java.io.File)
method.
Along with the instance it caches also all repository metadata (branches, index, references etc.)
needed to construct the client and operate with the actual Git repository.
Every call to the getInstance
method with the same instance of the file
will always return the same instance of GitRepository
. It is up to a caller's
responsibility to hold a strong reference to the file so a created client always works with
the same instance of the git repository.
Modifier and Type | Class and Description |
---|---|
static class |
GitRepository.FastForwardOption
Option specifying how to deal with merges and merge commits.
|
Modifier and Type | Method and Description |
---|---|
GitClient |
createClient()
Creates and returns always a new instance of git client bound to the local git repository.
|
GitRepository.FastForwardOption |
getDefaultFastForwardOption()
Parses the repository configuration file and returns the default fast-forward merge
option set for the repository and its current branch.
|
static GitRepository |
getInstance(File repositoryLocation)
Returns the instance of
GitRepository representing an existing or not yet existing repository
specified by the given local folder. |
public static GitRepository getInstance(File repositoryLocation)
GitRepository
representing an existing or not yet existing repository
specified by the given local folder.repositoryLocation
- repository root location, the file may or may not exist.
If you plan to create a local new repository, the repository
will be created at this location.GitRepository
public GitClient createClient() throws GitException
GitException
- when an error occurs while loading repository data from disk.public GitRepository.FastForwardOption getDefaultFastForwardOption() throws GitException
GitException
- an error occurs