Commit changes generated during repo command
Change-Id: Ia4df9808294d2069dcc5973bcb69b4499c7dcacd Signed-off-by: Yuxuan 'fishy' Wang <fishywang@google.com>
This commit is contained in:
parent
51cccc9dae
commit
dc4c673902
|
@ -2,3 +2,4 @@ copyFileFailed=Error occurred during execution of copyfile rule.
|
||||||
errorNoDefault=Error: no default remote in file {0}.
|
errorNoDefault=Error: no default remote in file {0}.
|
||||||
errorParsingManifestFile=Error occurred during parsing manifest file {0}.
|
errorParsingManifestFile=Error occurred during parsing manifest file {0}.
|
||||||
invalidManifest=Invalid manifest.
|
invalidManifest=Invalid manifest.
|
||||||
|
repoCommitMessage=Added repo manifest.
|
||||||
|
|
|
@ -58,6 +58,7 @@
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.eclipse.jgit.api.AddCommand;
|
import org.eclipse.jgit.api.AddCommand;
|
||||||
|
import org.eclipse.jgit.api.Git;
|
||||||
import org.eclipse.jgit.api.GitCommand;
|
import org.eclipse.jgit.api.GitCommand;
|
||||||
import org.eclipse.jgit.api.SubmoduleAddCommand;
|
import org.eclipse.jgit.api.SubmoduleAddCommand;
|
||||||
import org.eclipse.jgit.api.errors.GitAPIException;
|
import org.eclipse.jgit.api.errors.GitAPIException;
|
||||||
|
@ -65,6 +66,7 @@
|
||||||
import org.eclipse.jgit.internal.JGitText;
|
import org.eclipse.jgit.internal.JGitText;
|
||||||
import org.eclipse.jgit.lib.ProgressMonitor;
|
import org.eclipse.jgit.lib.ProgressMonitor;
|
||||||
import org.eclipse.jgit.lib.Repository;
|
import org.eclipse.jgit.lib.Repository;
|
||||||
|
import org.eclipse.jgit.revwalk.RevCommit;
|
||||||
|
|
||||||
import org.xml.sax.Attributes;
|
import org.xml.sax.Attributes;
|
||||||
import org.xml.sax.InputSource;
|
import org.xml.sax.InputSource;
|
||||||
|
@ -82,12 +84,13 @@
|
||||||
* @see <a href="https://code.google.com/p/git-repo/">git-repo project page</a>
|
* @see <a href="https://code.google.com/p/git-repo/">git-repo project page</a>
|
||||||
* @since 3.4
|
* @since 3.4
|
||||||
*/
|
*/
|
||||||
public class RepoCommand extends GitCommand<Void> {
|
public class RepoCommand extends GitCommand<RevCommit> {
|
||||||
|
|
||||||
private String path;
|
private String path;
|
||||||
private String uri;
|
private String uri;
|
||||||
private String groups;
|
private String groups;
|
||||||
|
|
||||||
|
private Git git;
|
||||||
private ProgressMonitor monitor;
|
private ProgressMonitor monitor;
|
||||||
|
|
||||||
private static class CopyFile {
|
private static class CopyFile {
|
||||||
|
@ -252,7 +255,8 @@ public void endDocument() throws SAXException {
|
||||||
throw new SAXException(
|
throw new SAXException(
|
||||||
RepoText.get().copyFileFailed, e);
|
RepoText.get().copyFileFailed, e);
|
||||||
}
|
}
|
||||||
AddCommand add = new AddCommand(command.repo)
|
AddCommand add = command.git
|
||||||
|
.add()
|
||||||
.addFilepattern(copyfile.relativeDest);
|
.addFilepattern(copyfile.relativeDest);
|
||||||
try {
|
try {
|
||||||
add.call();
|
add.call();
|
||||||
|
@ -344,13 +348,14 @@ public RepoCommand setProgressMonitor(final ProgressMonitor monitor) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void call() throws GitAPIException {
|
public RevCommit call() throws GitAPIException {
|
||||||
checkCallable();
|
checkCallable();
|
||||||
if (path == null || path.length() == 0)
|
if (path == null || path.length() == 0)
|
||||||
throw new IllegalArgumentException(JGitText.get().pathNotConfigured);
|
throw new IllegalArgumentException(JGitText.get().pathNotConfigured);
|
||||||
if (uri == null || uri.length() == 0)
|
if (uri == null || uri.length() == 0)
|
||||||
throw new IllegalArgumentException(JGitText.get().uriNotConfigured);
|
throw new IllegalArgumentException(JGitText.get().uriNotConfigured);
|
||||||
|
|
||||||
|
git = new Git(repo);
|
||||||
XmlManifest manifest = new XmlManifest(this, path, uri, groups);
|
XmlManifest manifest = new XmlManifest(this, path, uri, groups);
|
||||||
try {
|
try {
|
||||||
manifest.read();
|
manifest.read();
|
||||||
|
@ -358,11 +363,15 @@ public Void call() throws GitAPIException {
|
||||||
throw new ManifestErrorException(e);
|
throw new ManifestErrorException(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return git
|
||||||
|
.commit()
|
||||||
|
.setMessage(RepoText.get().repoCommitMessage)
|
||||||
|
.call();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addSubmodule(String url, String name) throws SAXException {
|
private void addSubmodule(String url, String name) throws SAXException {
|
||||||
SubmoduleAddCommand add = new SubmoduleAddCommand(repo)
|
SubmoduleAddCommand add = git
|
||||||
|
.submoduleAdd()
|
||||||
.setPath(name)
|
.setPath(name)
|
||||||
.setURI(url);
|
.setURI(url);
|
||||||
if (monitor != null)
|
if (monitor != null)
|
||||||
|
|
|
@ -63,4 +63,5 @@ public static RepoText get() {
|
||||||
/***/ public String errorNoDefault;
|
/***/ public String errorNoDefault;
|
||||||
/***/ public String errorParsingManifestFile;
|
/***/ public String errorParsingManifestFile;
|
||||||
/***/ public String invalidManifest;
|
/***/ public String invalidManifest;
|
||||||
|
/***/ public String repoCommitMessage;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue