public class SubmoduleWalk extends Object implements AutoCloseable
Modifier and Type | Class and Description |
---|---|
static class |
SubmoduleWalk.IgnoreSubmoduleMode
The values for the config param submodule.
|
Constructor and Description |
---|
SubmoduleWalk(Repository repository)
Create submodule generator
|
Modifier and Type | Method and Description |
---|---|
void |
close()
Release any resources used by this walker's reader.
|
static boolean |
containsGitModulesFile(Repository repository)
Checks whether the working tree contains a .gitmodules file.
|
static SubmoduleWalk |
forIndex(Repository repository)
Create a generator to walk over the submodule entries currently in the
index
The
.gitmodules file is read from the index. |
static SubmoduleWalk |
forPath(Repository repository,
AbstractTreeIterator iterator,
String path)
Create a generator and advance it to the submodule entry at the given
path
|
static SubmoduleWalk |
forPath(Repository repository,
AnyObjectId treeId,
String path)
Create a generator and advance it to the submodule entry at the given
path
|
String |
getConfigUpdate()
Get the configured update field for current entry.
|
String |
getConfigUrl()
Get the configured remote URL for current entry.
|
File |
getDirectory()
Get directory that will be the root of the submodule's local repository
|
ObjectId |
getHead()
Get commit id that HEAD points to in the current submodule's repository
|
String |
getHeadRef()
Get ref that HEAD points to in the current submodule's repository
|
SubmoduleWalk.IgnoreSubmoduleMode |
getModulesIgnore()
Get the configured ignore field for the current entry.
|
String |
getModulesPath()
Get the configured path for current entry.
|
String |
getModulesUpdate()
Get the configured update field for current entry.
|
String |
getModulesUrl()
Get the configured remote URL for current entry.
|
ObjectId |
getObjectId()
Get object id of current submodule entry
|
String |
getPath()
Get path of current submodule entry
|
String |
getRemoteUrl()
Get the resolved remote URL for the current submodule.
|
Repository |
getRepository()
Get repository for current submodule entry
|
static File |
getSubmoduleDirectory(Repository parent,
String path)
Get submodule directory
|
static String |
getSubmoduleRemoteUrl(Repository parent,
String url)
Resolve submodule repository URL.
|
static Repository |
getSubmoduleRepository(File parent,
String path)
Get submodule repository at path
|
static Repository |
getSubmoduleRepository(Repository parent,
String path)
Get submodule repository
|
SubmoduleWalk |
loadModulesConfig()
Load the config for this walk from
.gitmodules . |
boolean |
next()
Advance to next submodule in the index tree.
|
SubmoduleWalk |
reset()
Reset generator and start new submodule walk
|
SubmoduleWalk |
setFilter(TreeFilter filter)
Set tree filter
|
SubmoduleWalk |
setModulesConfig(Config config)
Set the config used by this walk.
|
SubmoduleWalk |
setRootTree(AbstractTreeIterator tree)
Set the tree used by this walk for finding
.gitmodules . |
SubmoduleWalk |
setRootTree(AnyObjectId id)
Set the tree used by this walk for finding
.gitmodules . |
SubmoduleWalk |
setTree(AbstractTreeIterator iterator)
Set the tree iterator used for finding submodule entries
|
SubmoduleWalk |
setTree(AnyObjectId treeId)
Set the tree used for finding submodule entries
|
public SubmoduleWalk(Repository repository) throws IOException
repository
- IOException
public static SubmoduleWalk forIndex(Repository repository) throws IOException
.gitmodules
file is read from the index.repository
- IOException
public static SubmoduleWalk forPath(Repository repository, AnyObjectId treeId, String path) throws IOException
repository
- treeId
- the root of a tree containing both a submodule at the given path
and .gitmodules at the root.path
- IOException
public static SubmoduleWalk forPath(Repository repository, AbstractTreeIterator iterator, String path) throws IOException
repository
- iterator
- the root of a tree containing both a submodule at the given path
and .gitmodules at the root.path
- IOException
public static File getSubmoduleDirectory(Repository parent, String path)
parent
- path
- public static Repository getSubmoduleRepository(Repository parent, String path) throws IOException
parent
- path
- IOException
public static Repository getSubmoduleRepository(File parent, String path) throws IOException
parent
- path
- IOException
public static String getSubmoduleRemoteUrl(Repository parent, String url) throws IOException
This handles relative URLs that are typically specified in the '.gitmodules' file by resolving them against the remote URL of the parent repository.
Relative URLs will be resolved against the parent repository's working directory if the parent repository has no configured remote URL.
parent
- parent repositoryurl
- absolute or relative URL of the submodule repositoryIOException
public SubmoduleWalk setModulesConfig(Config config)
config
- .gitmodules config objectpublic SubmoduleWalk setRootTree(AbstractTreeIterator tree)
.gitmodules
.
The root tree is not read until the first submodule is encountered by the walk.
This method need only be called if constructing a walk manually instead of with one of the static factory methods above.
tree
- tree containing .gitmodulespublic SubmoduleWalk setRootTree(AnyObjectId id) throws IOException
.gitmodules
.
The root tree is not read until the first submodule is encountered by the walk.
This method need only be called if constructing a walk manually instead of with one of the static factory methods above.
id
- ID of a tree containing .gitmodulesIOException
public SubmoduleWalk loadModulesConfig() throws IOException, ConfigInvalidException
.gitmodules
.
Uses the root tree if setRootTree(AbstractTreeIterator)
was
previously called, otherwise uses the working tree.
If no submodule config is found, loads an empty config.
IOException
- if an error occurred, or if the repository is bareConfigInvalidException
public static boolean containsGitModulesFile(Repository repository) throws IOException
repository
- the repository to checktrue
if the working tree contains a .gitmodules file,
false
otherwise. Always returns false
for bare repositories.IOException
CorruptObjectException
public SubmoduleWalk setFilter(TreeFilter filter)
filter
- public SubmoduleWalk setTree(AbstractTreeIterator iterator) throws CorruptObjectException
iterator
- CorruptObjectException
public SubmoduleWalk setTree(AnyObjectId treeId) throws IOException
treeId
- IOException
IncorrectObjectTypeException
MissingObjectException
public SubmoduleWalk reset()
public File getDirectory()
public boolean next() throws IOException
getObjectId()
and getPath()
.IOException
public String getPath()
public ObjectId getObjectId()
public String getModulesPath() throws IOException, ConfigInvalidException
ConfigInvalidException
IOException
public String getConfigUrl() throws IOException, ConfigInvalidException
ConfigInvalidException
IOException
public String getModulesUrl() throws IOException, ConfigInvalidException
ConfigInvalidException
IOException
public String getConfigUpdate() throws IOException, ConfigInvalidException
ConfigInvalidException
IOException
public String getModulesUpdate() throws IOException, ConfigInvalidException
ConfigInvalidException
IOException
public SubmoduleWalk.IgnoreSubmoduleMode getModulesIgnore() throws IOException, ConfigInvalidException
ConfigInvalidException
IOException
public Repository getRepository() throws IOException
IOException
public ObjectId getHead() throws IOException
IOException
public String getHeadRef() throws IOException
IOException
public String getRemoteUrl() throws IOException, ConfigInvalidException
This method resolves the value of getModulesUrl()
to an absolute
URL
IOException
ConfigInvalidException
public void close()
close
in interface AutoCloseable
Copyright © 2016 Eclipse JGit Project. All rights reserved.