public class SubmoduleWalk extends Object implements AutoCloseable
Modifier and Type | Class and Description |
---|---|
static class |
SubmoduleWalk.IgnoreSubmoduleMode
The values for the config parameter submodule.<name>.ignore
|
Constructor and Description |
---|
SubmoduleWalk(Repository repository)
Create submodule generator
|
Modifier and Type | Method and Description |
---|---|
void |
close() |
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
|
String |
getModuleName()
The module name for the current submodule entry (used for the section
name of .git/config)
|
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(File parent,
String path,
FS fs)
Get submodule repository at path, using the specified file system
abstraction
|
static Repository |
getSubmoduleRepository(File parent,
String path,
FS fs,
BaseRepositoryBuilder<?,? extends Repository> builder)
Get submodule repository at path, using the specified file system
abstraction and the specified builder
|
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
|
void |
setBuilderFactory(RepositoryBuilderFactory factory)
Sets the
RepositoryBuilderFactory to use for creating submodule
repositories. |
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
- the Repository
.IOException
public static SubmoduleWalk forIndex(Repository repository) throws IOException
.gitmodules
file is read from the index.repository
- a Repository
object.close()
.IOException
public static SubmoduleWalk forPath(Repository repository, AnyObjectId treeId, String path) throws IOException
repository
- a Repository
object.treeId
- the root of a tree containing both a submodule at the given
path and .gitmodules at the root.path
- a String
object.close()
. Null if no submodule at given path.IOException
public static SubmoduleWalk forPath(Repository repository, AbstractTreeIterator iterator, String path) throws IOException
repository
- a Repository
object.iterator
- the root of a tree containing both a submodule at the given
path and .gitmodules at the root.path
- a String
object.close()
. Null if no submodule at given path.IOException
public static File getSubmoduleDirectory(Repository parent, String path)
parent
- the Repository
.path
- submodule pathpublic static Repository getSubmoduleRepository(Repository parent, String path) throws IOException
parent
- the Repository
.path
- submodule pathIOException
public static Repository getSubmoduleRepository(File parent, String path) throws IOException
parent
- the parentpath
- submodule pathIOException
public static Repository getSubmoduleRepository(File parent, String path, FS fs) throws IOException
parent
- path
- fs
- the file system abstraction to be usedIOException
public static Repository getSubmoduleRepository(File parent, String path, FS fs, BaseRepositoryBuilder<?,? extends Repository> builder) throws IOException
parent
- Repository
that contains the submodulepath
- of the working tree of the submodulefs
- FS
to usebuilder
- BaseRepositoryBuilder
to use to build the submodule
repositoryRepository
of the submodule, or null
if it
doesn't existIOException
- on errorspublic 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
- if any.public SubmoduleWalk setFilter(TreeFilter filter)
filter
- a TreeFilter
object.public SubmoduleWalk setTree(AbstractTreeIterator iterator) throws CorruptObjectException
iterator
- an AbstractTreeIterator
object.CorruptObjectException
public SubmoduleWalk setTree(AnyObjectId treeId) throws IOException
treeId
- an AnyObjectId
object.IOException
IncorrectObjectTypeException
- if any.MissingObjectException
- if any.public SubmoduleWalk reset()
public File getDirectory()
public boolean next() throws IOException
getObjectId()
and getPath()
.IOException
public String getPath()
public void setBuilderFactory(RepositoryBuilderFactory factory)
RepositoryBuilderFactory
to use for creating submodule
repositories. If none is set, a plain RepositoryBuilder
is used.factory
- to setpublic String getModuleName()
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()
Release any resources used by this walker's reader.
close
in interface AutoCloseable
Copyright © 2020 Eclipse JGit Project. All rights reserved.