Class RepoCommand

  • All Implemented Interfaces:
    java.util.concurrent.Callable<RevCommit>

    public class RepoCommand
    extends GitCommand<RevCommit>
    A class used to execute a repo command. This will parse a repo XML manifest, convert it into .gitmodules file and the repository config file. If called against a bare repository, it will replace all the existing content of the repository with the contents populated from the manifest. repo manifest allows projects overlapping, e.g. one project's path is "foo" and another project's path is "foo/bar". This won't work in git submodule, so we'll skip all the sub projects ("foo/bar" in the example) while converting.
    Since:
    3.4
    See Also:
    git-repo project page
    • Constructor Detail

      • RepoCommand

        public RepoCommand​(Repository repo)
        Parameters:
        repo -
    • Method Detail

      • setPath

        public RepoCommand setPath​(java.lang.String path)
        Set path to the manifest XML file. Calling setInputStream(java.io.InputStream) will ignore the path set here.
        Parameters:
        path - (with / as separator)
        Returns:
        this command
      • setInputStream

        public RepoCommand setInputStream​(java.io.InputStream inputStream)
        Set the input stream to the manifest XML. Setting inputStream will ignore the path set. It will be closed in call().
        Parameters:
        inputStream -
        Returns:
        this command
        Since:
        3.5
      • setURI

        public RepoCommand setURI​(java.lang.String uri)
        Set base URI of the pathes inside the XML
        Parameters:
        uri -
        Returns:
        this command
      • setGroups

        public RepoCommand setGroups​(java.lang.String groups)
        Set groups to sync
        Parameters:
        groups - groups separated by comma, examples: default|all|G1,-G2,-G3
        Returns:
        this command
      • setBranch

        public RepoCommand setBranch​(java.lang.String branch)
        Set default branch. This is generally the name of the branch the manifest file was in. If there's no default revision (branch) specified in manifest and no revision specified in project, this branch will be used.
        Parameters:
        branch -
        Returns:
        this command
      • setProgressMonitor

        public RepoCommand setProgressMonitor​(ProgressMonitor monitor)
        The progress monitor associated with the clone operation. By default, this is set to NullProgressMonitor
        Parameters:
        monitor -
        Returns:
        this command
        See Also:
        NullProgressMonitor
      • setAuthor

        public RepoCommand setAuthor​(PersonIdent author)
        Set the author/committer for the bare repository commit. For non-bare repositories, the current user will be used and this will be ignored.
        Parameters:
        author -
        Returns:
        this command
      • setRemoteReader

        public RepoCommand setRemoteReader​(RepoCommand.RemoteReader callback)
        Set the GetHeadFromUri callback. This is only used in bare repositories.
        Parameters:
        callback -
        Returns:
        this command