org.eclipse.jgit.submodule
Class SubmoduleWalk

java.lang.Object
  extended by org.eclipse.jgit.submodule.SubmoduleWalk

public class SubmoduleWalk
extends java.lang.Object

Walker that visits all submodule entries found in a tree


Constructor Summary
SubmoduleWalk(Repository repository)
          Create submodule generator
 
Method Summary
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, java.lang.String path)
          Create a generator and advance it to the submodule entry at the given path
static SubmoduleWalk forPath(Repository repository, AnyObjectId treeId, java.lang.String path)
          Create a generator and advance it to the submodule entry at the given path
 java.lang.String getConfigUpdate()
          Get the configured update field for current entry.
 java.lang.String getConfigUrl()
          Get the configured remote URL for current entry.
 java.io.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
 java.lang.String getHeadRef()
          Get ref that HEAD points to in the current submodule's repository
 java.lang.String getModulesPath()
          Get the configured path for current entry.
 java.lang.String getModulesUpdate()
          Get the configured update field for current entry.
 java.lang.String getModulesUrl()
          Get the configured remote URL for current entry.
 ObjectId getObjectId()
          Get object id of current submodule entry
 java.lang.String getPath()
          Get path of current submodule entry
 java.lang.String getRemoteUrl()
          Get the resolved remote URL for the current submodule.
 Repository getRepository()
          Get repository for current submodule entry
static java.io.File getSubmoduleDirectory(Repository parent, java.lang.String path)
          Get submodule directory
static java.lang.String getSubmoduleRemoteUrl(Repository parent, java.lang.String url)
          Resolve submodule repository URL.
static Repository getSubmoduleRepository(java.io.File parent, java.lang.String path)
          Get submodule repository at path
static Repository getSubmoduleRepository(Repository parent, java.lang.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.
 void release()
          Release any resources used by this walker's reader.
 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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SubmoduleWalk

public SubmoduleWalk(Repository repository)
              throws java.io.IOException
Create submodule generator

Parameters:
repository -
Throws:
java.io.IOException
Method Detail

forIndex

public static SubmoduleWalk forIndex(Repository repository)
                              throws java.io.IOException
Create a generator to walk over the submodule entries currently in the index The .gitmodules file is read from the index.

Parameters:
repository -
Returns:
generator over submodule index entries
Throws:
java.io.IOException

forPath

public static SubmoduleWalk forPath(Repository repository,
                                    AnyObjectId treeId,
                                    java.lang.String path)
                             throws java.io.IOException
Create a generator and advance it to the submodule entry at the given path

Parameters:
repository -
treeId - the root of a tree containing both a submodule at the given path and .gitmodules at the root.
path -
Returns:
generator at given path, null if no submodule at given path
Throws:
java.io.IOException

forPath

public static SubmoduleWalk forPath(Repository repository,
                                    AbstractTreeIterator iterator,
                                    java.lang.String path)
                             throws java.io.IOException
Create a generator and advance it to the submodule entry at the given path

Parameters:
repository -
iterator - the root of a tree containing both a submodule at the given path and .gitmodules at the root.
path -
Returns:
generator at given path, null if no submodule at given path
Throws:
java.io.IOException

getSubmoduleDirectory

public static java.io.File getSubmoduleDirectory(Repository parent,
                                                 java.lang.String path)
Get submodule directory

Parameters:
parent -
path -
Returns:
directory

getSubmoduleRepository

public static Repository getSubmoduleRepository(Repository parent,
                                                java.lang.String path)
                                         throws java.io.IOException
Get submodule repository

Parameters:
parent -
path -
Returns:
repository or null if repository doesn't exist
Throws:
java.io.IOException

getSubmoduleRepository

public static Repository getSubmoduleRepository(java.io.File parent,
                                                java.lang.String path)
                                         throws java.io.IOException
Get submodule repository at path

Parameters:
parent -
path -
Returns:
repository or null if repository doesn't exist
Throws:
java.io.IOException

getSubmoduleRemoteUrl

public static java.lang.String getSubmoduleRemoteUrl(Repository parent,
                                                     java.lang.String url)
                                              throws java.io.IOException
Resolve submodule repository URL.

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.

Parameters:
parent - parent repository
url - absolute or relative URL of the submodule repository
Returns:
resolved URL
Throws:
java.io.IOException

setModulesConfig

public SubmoduleWalk setModulesConfig(Config config)
Set the config used by this walk. This method need only be called if constructing a walk manually instead of with one of the static factory methods above.

Parameters:
config - .gitmodules config object
Returns:
this generator

setRootTree

public SubmoduleWalk setRootTree(AbstractTreeIterator tree)
Set the tree used by this walk for finding .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.

Parameters:
tree - tree containing .gitmodules
Returns:
this generator

setRootTree

public SubmoduleWalk setRootTree(AnyObjectId id)
                          throws java.io.IOException
Set the tree used by this walk for finding .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.

Parameters:
id - ID of a tree containing .gitmodules
Returns:
this generator
Throws:
java.io.IOException

loadModulesConfig

public SubmoduleWalk loadModulesConfig()
                                throws java.io.IOException,
                                       ConfigInvalidException
Load the config for this walk from .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.

Returns:
this generator
Throws:
java.io.IOException - if an error occurred, or if the repository is bare
ConfigInvalidException

setFilter

public SubmoduleWalk setFilter(TreeFilter filter)
Set tree filter

Parameters:
filter -
Returns:
this generator

setTree

public SubmoduleWalk setTree(AbstractTreeIterator iterator)
                      throws CorruptObjectException
Set the tree iterator used for finding submodule entries

Parameters:
iterator -
Returns:
this generator
Throws:
CorruptObjectException

setTree

public SubmoduleWalk setTree(AnyObjectId treeId)
                      throws java.io.IOException
Set the tree used for finding submodule entries

Parameters:
treeId -
Returns:
this generator
Throws:
java.io.IOException
IncorrectObjectTypeException
MissingObjectException

reset

public SubmoduleWalk reset()
Reset generator and start new submodule walk

Returns:
this generator

getDirectory

public java.io.File getDirectory()
Get directory that will be the root of the submodule's local repository

Returns:
submodule repository directory

next

public boolean next()
             throws java.io.IOException
Advance to next submodule in the index tree. The object id and path of the next entry can be obtained by calling getObjectId() and getPath().

Returns:
true if entry found, false otherwise
Throws:
java.io.IOException

getPath

public java.lang.String getPath()
Get path of current submodule entry

Returns:
path

getObjectId

public ObjectId getObjectId()
Get object id of current submodule entry

Returns:
object id

getModulesPath

public java.lang.String getModulesPath()
                                throws java.io.IOException,
                                       ConfigInvalidException
Get the configured path for current entry. This will be the value from the .gitmodules file in the current repository's working tree.

Returns:
configured path
Throws:
ConfigInvalidException
java.io.IOException

getConfigUrl

public java.lang.String getConfigUrl()
                              throws java.io.IOException,
                                     ConfigInvalidException
Get the configured remote URL for current entry. This will be the value from the repository's config.

Returns:
configured URL
Throws:
ConfigInvalidException
java.io.IOException

getModulesUrl

public java.lang.String getModulesUrl()
                               throws java.io.IOException,
                                      ConfigInvalidException
Get the configured remote URL for current entry. This will be the value from the .gitmodules file in the current repository's working tree.

Returns:
configured URL
Throws:
ConfigInvalidException
java.io.IOException

getConfigUpdate

public java.lang.String getConfigUpdate()
                                 throws java.io.IOException,
                                        ConfigInvalidException
Get the configured update field for current entry. This will be the value from the repository's config.

Returns:
update value
Throws:
ConfigInvalidException
java.io.IOException

getModulesUpdate

public java.lang.String getModulesUpdate()
                                  throws java.io.IOException,
                                         ConfigInvalidException
Get the configured update field for current entry. This will be the value from the .gitmodules file in the current repository's working tree.

Returns:
update value
Throws:
ConfigInvalidException
java.io.IOException

getRepository

public Repository getRepository()
                         throws java.io.IOException
Get repository for current submodule entry

Returns:
repository or null if non-existent
Throws:
java.io.IOException

getHead

public ObjectId getHead()
                 throws java.io.IOException
Get commit id that HEAD points to in the current submodule's repository

Returns:
object id of HEAD reference
Throws:
java.io.IOException

getHeadRef

public java.lang.String getHeadRef()
                            throws java.io.IOException
Get ref that HEAD points to in the current submodule's repository

Returns:
ref name, null on failures
Throws:
java.io.IOException

getRemoteUrl

public java.lang.String getRemoteUrl()
                              throws java.io.IOException,
                                     ConfigInvalidException
Get the resolved remote URL for the current submodule.

This method resolves the value of getModulesUrl() to an absolute URL

Returns:
resolved remote URL
Throws:
java.io.IOException
ConfigInvalidException

release

public void release()
Release any resources used by this walker's reader.



Copyright © 2013. All Rights Reserved.