|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.eclipse.jgit.lib.Repository
public abstract class Repository
Represents a Git repository.
A repository holds all objects and refs used for managing source code (could be any type of file, but source code is what SCM's are typically used for).
This class is thread-safe.
Constructor Summary | |
---|---|
protected |
Repository(BaseRepositoryBuilder options)
Initialize a new repository instance. |
Method Summary | |
---|---|
void |
close()
Decrement the use count, and maybe close resources. |
void |
create()
Create a new Git repository. |
abstract void |
create(boolean bare)
Create a new Git repository initializing the necessary files and directories. |
protected void |
doClose()
Invoked when the use count drops to zero during close() . |
void |
fireEvent(RepositoryEvent<?> event)
Fire an event to all registered listeners. |
Set<ObjectId> |
getAdditionalHaves()
Objects known to exist but not expressed by getAllRefs() . |
Map<String,Ref> |
getAllRefs()
|
Map<AnyObjectId,Set<Ref>> |
getAllRefsByPeeledObjectId()
|
String |
getBranch()
Get the short name of the current branch that HEAD points to. |
abstract StoredConfig |
getConfig()
|
File |
getDirectory()
|
FS |
getFS()
|
String |
getFullBranch()
Get the name of the reference that HEAD points to. |
static ListenerList |
getGlobalListenerList()
|
File |
getIndexFile()
|
ListenerList |
getListenerList()
|
abstract ObjectDatabase |
getObjectDatabase()
|
Ref |
getRef(String name)
Get a ref by name. |
abstract RefDatabase |
getRefDatabase()
|
abstract ReflogReader |
getReflogReader(String refName)
|
RepositoryState |
getRepositoryState()
|
Map<String,Ref> |
getTags()
|
File |
getWorkTree()
|
boolean |
hasObject(AnyObjectId objectId)
|
void |
incrementOpen()
Increment the use counter by one, requiring a matched close() . |
boolean |
isBare()
|
static boolean |
isValidRefName(String refName)
Check validity of a ref name. |
DirCache |
lockDirCache()
Create a new in-core index representation, lock it, and read from disk. |
ObjectInserter |
newObjectInserter()
|
ObjectReader |
newObjectReader()
|
abstract void |
notifyIndexChanged()
Notify that the index changed |
ObjectLoader |
open(AnyObjectId objectId)
Open an object from this repository. |
ObjectLoader |
open(AnyObjectId objectId,
int typeHint)
Open an object from this repository. |
Ref |
peel(Ref ref)
Peel a possibly unpeeled reference to an annotated tag. |
ObjectId |
readCherryPickHead()
Return the information stored in the file $GIT_DIR/CHERRY_PICK_HEAD. |
DirCache |
readDirCache()
Create a new in-core index representation and read an index from disk. |
String |
readMergeCommitMsg()
Return the information stored in the file $GIT_DIR/MERGE_MSG. |
List<ObjectId> |
readMergeHeads()
Return the information stored in the file $GIT_DIR/MERGE_HEAD. |
ObjectId |
readOrigHead()
Return the information stored in the file $GIT_DIR/ORIG_HEAD. |
ObjectId |
readRevertHead()
Return the information stored in the file $GIT_DIR/REVERT_HEAD. |
String |
readSquashCommitMsg()
Return the information stored in the file $GIT_DIR/SQUASH_MSG. |
RefRename |
renameRef(String fromRef,
String toRef)
Create a command to rename a ref in this repository |
ObjectId |
resolve(String revstr)
Parse a git revision string and return an object id. |
abstract void |
scanForRepoChanges()
Force a scan for changed refs. |
static String |
shortenRefName(String refName)
|
String |
simplify(String revstr)
Simplify an expression, but unlike resolve(String) it will not
resolve a branch passed or resulting from the expression, such as @{-}. |
static String |
stripWorkDir(File workDir,
File file)
Strip work dir and return normalized repository path. |
String |
toString()
|
RefUpdate |
updateRef(String ref)
Create a command to update, create or delete a ref in this repository. |
RefUpdate |
updateRef(String ref,
boolean detach)
Create a command to update, create or delete a ref in this repository. |
void |
writeCherryPickHead(ObjectId head)
Write cherry pick commit into $GIT_DIR/CHERRY_PICK_HEAD. |
void |
writeMergeCommitMsg(String msg)
Write new content to the file $GIT_DIR/MERGE_MSG. |
void |
writeMergeHeads(List<ObjectId> heads)
Write new merge-heads into $GIT_DIR/MERGE_HEAD. |
void |
writeOrigHead(ObjectId head)
Write original HEAD commit into $GIT_DIR/ORIG_HEAD. |
void |
writeRevertHead(ObjectId head)
Write revert commit into $GIT_DIR/REVERT_HEAD. |
void |
writeSquashCommitMsg(String msg)
Write new content to the file $GIT_DIR/SQUASH_MSG. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
protected Repository(BaseRepositoryBuilder options)
options
- options to configure the repository.Method Detail |
---|
public static ListenerList getGlobalListenerList()
public ListenerList getListenerList()
public void fireEvent(RepositoryEvent<?> event)
The source repository of the event is automatically set to this repository, before the event is delivered to any listeners.
event
- the event to deliver.public void create() throws IOException
Repository with working tree is created using this method. This method is
the same as create(false)
.
IOException
create(boolean)
public abstract void create(boolean bare) throws IOException
bare
- if true, a bare repository (a repository without a working
directory) is created.
IOException
- in case of IO problempublic File getDirectory()
public abstract ObjectDatabase getObjectDatabase()
public ObjectInserter newObjectInserter()
getObjectDatabase()
public ObjectReader newObjectReader()
getObjectDatabase()
public abstract RefDatabase getRefDatabase()
public abstract StoredConfig getConfig()
public FS getFS()
public boolean hasObject(AnyObjectId objectId)
objectId
-
public ObjectLoader open(AnyObjectId objectId) throws MissingObjectException, IOException
This is a one-shot call interface which may be faster than allocating a
newObjectReader()
to perform the lookup.
objectId
- identity of the object to open.
ObjectLoader
for accessing the object.
MissingObjectException
- the object does not exist.
IOException
- the object store cannot be accessed.public ObjectLoader open(AnyObjectId objectId, int typeHint) throws MissingObjectException, IncorrectObjectTypeException, IOException
This is a one-shot call interface which may be faster than allocating a
newObjectReader()
to perform the lookup.
objectId
- identity of the object to open.typeHint
- hint about the type of object being requested;
ObjectReader.OBJ_ANY
if the object type is not known,
or does not matter to the caller.
ObjectLoader
for accessing the object.
MissingObjectException
- the object does not exist.
IncorrectObjectTypeException
- typeHint was not OBJ_ANY, and the object's actual type does
not match typeHint.
IOException
- the object store cannot be accessed.public RefUpdate updateRef(String ref) throws IOException
ref
- name of the ref the caller wants to modify.
IOException
- a symbolic ref was passed in and could not be resolved back
to the base ref, as the symbolic ref could not be read.public RefUpdate updateRef(String ref, boolean detach) throws IOException
ref
- name of the ref the caller wants to modify.detach
- true to create a detached head
IOException
- a symbolic ref was passed in and could not be resolved back
to the base ref, as the symbolic ref could not be read.public RefRename renameRef(String fromRef, String toRef) throws IOException
fromRef
- name of ref to rename fromtoRef
- name of ref to rename to
IOException
- the rename could not be performed.public ObjectId resolve(String revstr) throws AmbiguousObjectException, IncorrectObjectTypeException, RevisionSyntaxException, IOException
refs/heads
,
refs/tags
, or refs/remotes
namespaceABBREV
as an abbreviated SHA-1.id^1
id~3
is equivalent to id^1^1^1
or id^^^
.The following operators are specified by Git conventions, but are not supported by this method:
revstr
- A git object references expression
AmbiguousObjectException
- revstr
contains an abbreviated ObjectId and this
repository contains more than one object which match to the
input abbreviation.
IncorrectObjectTypeException
- the id parsed does not meet the type required to finish
applying the operators in the expression.
RevisionSyntaxException
- the expression is not supported by this implementation, or
does not meet the standard syntax.
IOException
- on serious errorspublic String simplify(String revstr) throws AmbiguousObjectException, IOException
resolve(String)
it will not
resolve a branch passed or resulting from the expression, such as @{-}.
Thus this method can be used to process an expression to a method that
expects a branch or revision id.
revstr
-
AmbiguousObjectException
IOException
public void incrementOpen()
close()
.
public void close()
protected void doClose()
close()
.
The default implementation closes the object and ref databases.
public String toString()
toString
in class Object
public String getFullBranch() throws IOException
HEAD
points to.
This is essentially the same as doing:
return getRef(Constants.HEAD).getTarget().getName()Except when HEAD is detached, in which case this method returns the current ObjectId in hexadecimal string format.
refs/heads/master
) or
an ObjectId in hex format if the current branch is detached.
IOException
public String getBranch() throws IOException
HEAD
points to.
This is essentially the same as getFullBranch()
, except the
leading prefix refs/heads/
is removed from the reference before
it is returned to the caller.
master
), or an
ObjectId in hex format if the current branch is detached.
IOException
public Set<ObjectId> getAdditionalHaves()
getAllRefs()
.
When a repository borrows objects from another repository, it can advertise that it safely has that other repository's references, without exposing any other details about the other repository. This may help a client trying to push changes avoid pushing more than it needs to.
public Ref getRef(String name) throws IOException
name
- the name of the ref to lookup. May be a short-hand form, e.g.
"master" which is is automatically expanded to
"refs/heads/master" if "refs/heads/master" already exists.
IOException
public Map<String,Ref> getAllRefs()
public Map<String,Ref> getTags()
public Ref peel(Ref ref)
If the ref cannot be peeled (as it does not refer to an annotated tag)
the peeled id stays null, but Ref.isPeeled()
will be true.
ref
- The ref to peel
ref
if ref.isPeeled()
is true; else a
new Ref object representing the same data as Ref, but isPeeled()
will be true and getPeeledObjectId will contain the peeled object
(or null).public Map<AnyObjectId,Set<Ref>> getAllRefsByPeeledObjectId()
public File getIndexFile() throws NoWorkTreeException
NoWorkTreeException
- if this is bare, which implies it has no working directory.
See isBare()
.public DirCache readDirCache() throws NoWorkTreeException, CorruptObjectException, IOException
The new index will be read before it is returned to the caller. Read failures are reported as exceptions and therefore prevent the method from returning a partially populated index.
NoWorkTreeException
- if this is bare, which implies it has no working directory.
See isBare()
.
IOException
- the index file is present but could not be read.
CorruptObjectException
- the index file is using a format or extension that this
library does not support.public DirCache lockDirCache() throws NoWorkTreeException, CorruptObjectException, IOException
The new index will be locked and then read before it is returned to the caller. Read failures are reported as exceptions and therefore prevent the method from returning a partially populated index.
NoWorkTreeException
- if this is bare, which implies it has no working directory.
See isBare()
.
IOException
- the index file is present but could not be read, or the lock
could not be obtained.
CorruptObjectException
- the index file is using a format or extension that this
library does not support.public RepositoryState getRepositoryState()
public static boolean isValidRefName(String refName)
refName
-
public static String stripWorkDir(File workDir, File file)
workDir
- Work dirfile
- File whose path shall be stripped of its workdir
public boolean isBare()
public File getWorkTree() throws NoWorkTreeException
NoWorkTreeException
- if this is bare, which implies it has no working directory.
See isBare()
.public abstract void scanForRepoChanges() throws IOException
IOException
public abstract void notifyIndexChanged()
public static String shortenRefName(String refName)
refName
-
public abstract ReflogReader getReflogReader(String refName) throws IOException
refName
-
ReflogReader
for the supplied refname, or null if the
named ref does not exist.
IOException
- the ref could not be accessed.public String readMergeCommitMsg() throws IOException, NoWorkTreeException
null
if this file doesn't exist
IOException
NoWorkTreeException
- if this is bare, which implies it has no working directory.
See isBare()
.public void writeMergeCommitMsg(String msg) throws IOException
null
is specified as message the file will
be deleted.
msg
- the message which should be written or null
to
delete the file
IOException
public List<ObjectId> readMergeHeads() throws IOException, NoWorkTreeException
null
if this file doesn't exist. Also if the file exists
but is empty null
will be returned
IOException
NoWorkTreeException
- if this is bare, which implies it has no working directory.
See isBare()
.public void writeMergeHeads(List<ObjectId> heads) throws IOException
null
is specified as list of commits
the file will be deleted
heads
- a list of commits which IDs should be written to
$GIT_DIR/MERGE_HEAD or null
to delete the file
IOException
public ObjectId readCherryPickHead() throws IOException, NoWorkTreeException
null
if this file
doesn't exist. Also if the file exists but is empty null
will be returned
IOException
NoWorkTreeException
- if this is bare, which implies it has no working directory.
See isBare()
.public ObjectId readRevertHead() throws IOException, NoWorkTreeException
null
if this file
doesn't exist. Also if the file exists but is empty null
will be returned
IOException
NoWorkTreeException
- if this is bare, which implies it has no working directory.
See isBare()
.public void writeCherryPickHead(ObjectId head) throws IOException
head
- an object id of the cherry commit or null
to
delete the file
IOException
public void writeRevertHead(ObjectId head) throws IOException
head
- an object id of the revert commit or null
to
delete the file
IOException
public void writeOrigHead(ObjectId head) throws IOException
head
- an object id of the original HEAD commit or null
to delete the file
IOException
public ObjectId readOrigHead() throws IOException, NoWorkTreeException
null
if this file
doesn't exist. Also if the file exists but is empty null
will be returned
IOException
NoWorkTreeException
- if this is bare, which implies it has no working directory.
See isBare()
.public String readSquashCommitMsg() throws IOException
null
if this file doesn't exist
IOException
NoWorkTreeException
- if this is bare, which implies it has no working directory.
See isBare()
.public void writeSquashCommitMsg(String msg) throws IOException
null
is specified as
message the file will be deleted.
msg
- the message which should be written or null
to
delete the file
IOException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |