From dc4c673902a0847b270faf1771595d7c189a1943 Mon Sep 17 00:00:00 2001 From: Yuxuan 'fishy' Wang Date: Fri, 18 Apr 2014 08:23:20 -0700 Subject: [PATCH] Commit changes generated during repo command Change-Id: Ia4df9808294d2069dcc5973bcb69b4499c7dcacd Signed-off-by: Yuxuan 'fishy' Wang --- .../jgit/gitrepo/internal/RepoText.properties | 1 + .../org/eclipse/jgit/gitrepo/RepoCommand.java | 19 ++++++++++++++----- .../jgit/gitrepo/internal/RepoText.java | 1 + 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/org.eclipse.jgit/resources/org/eclipse/jgit/gitrepo/internal/RepoText.properties b/org.eclipse.jgit/resources/org/eclipse/jgit/gitrepo/internal/RepoText.properties index 64d754de8..29aa51ccd 100644 --- a/org.eclipse.jgit/resources/org/eclipse/jgit/gitrepo/internal/RepoText.properties +++ b/org.eclipse.jgit/resources/org/eclipse/jgit/gitrepo/internal/RepoText.properties @@ -2,3 +2,4 @@ copyFileFailed=Error occurred during execution of copyfile rule. errorNoDefault=Error: no default remote in file {0}. errorParsingManifestFile=Error occurred during parsing manifest file {0}. invalidManifest=Invalid manifest. +repoCommitMessage=Added repo manifest. diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/gitrepo/RepoCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/gitrepo/RepoCommand.java index a05dc11da..475fbacaf 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/gitrepo/RepoCommand.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/gitrepo/RepoCommand.java @@ -58,6 +58,7 @@ import java.util.Set; import org.eclipse.jgit.api.AddCommand; +import org.eclipse.jgit.api.Git; import org.eclipse.jgit.api.GitCommand; import org.eclipse.jgit.api.SubmoduleAddCommand; import org.eclipse.jgit.api.errors.GitAPIException; @@ -65,6 +66,7 @@ import org.eclipse.jgit.internal.JGitText; import org.eclipse.jgit.lib.ProgressMonitor; import org.eclipse.jgit.lib.Repository; +import org.eclipse.jgit.revwalk.RevCommit; import org.xml.sax.Attributes; import org.xml.sax.InputSource; @@ -82,12 +84,13 @@ * @see git-repo project page * @since 3.4 */ -public class RepoCommand extends GitCommand { +public class RepoCommand extends GitCommand { private String path; private String uri; private String groups; + private Git git; private ProgressMonitor monitor; private static class CopyFile { @@ -252,7 +255,8 @@ public void endDocument() throws SAXException { throw new SAXException( RepoText.get().copyFileFailed, e); } - AddCommand add = new AddCommand(command.repo) + AddCommand add = command.git + .add() .addFilepattern(copyfile.relativeDest); try { add.call(); @@ -344,13 +348,14 @@ public RepoCommand setProgressMonitor(final ProgressMonitor monitor) { } @Override - public Void call() throws GitAPIException { + public RevCommit call() throws GitAPIException { checkCallable(); if (path == null || path.length() == 0) throw new IllegalArgumentException(JGitText.get().pathNotConfigured); if (uri == null || uri.length() == 0) throw new IllegalArgumentException(JGitText.get().uriNotConfigured); + git = new Git(repo); XmlManifest manifest = new XmlManifest(this, path, uri, groups); try { manifest.read(); @@ -358,11 +363,15 @@ public Void call() throws GitAPIException { throw new ManifestErrorException(e); } - return null; + return git + .commit() + .setMessage(RepoText.get().repoCommitMessage) + .call(); } private void addSubmodule(String url, String name) throws SAXException { - SubmoduleAddCommand add = new SubmoduleAddCommand(repo) + SubmoduleAddCommand add = git + .submoduleAdd() .setPath(name) .setURI(url); if (monitor != null) diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/gitrepo/internal/RepoText.java b/org.eclipse.jgit/src/org/eclipse/jgit/gitrepo/internal/RepoText.java index 50fc61d91..1313fff0d 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/gitrepo/internal/RepoText.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/gitrepo/internal/RepoText.java @@ -63,4 +63,5 @@ public static RepoText get() { /***/ public String errorNoDefault; /***/ public String errorParsingManifestFile; /***/ public String invalidManifest; + /***/ public String repoCommitMessage; }