Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYuxuan 'fishy' Wang2014-08-18 18:12:08 +0000
committerYuxuan 'fishy' Wang2014-08-18 18:12:08 +0000
commit66fc8345304087a9d5e97afc08cf340767f6f1d2 (patch)
treea542549dd58c62b3caa9b598278ab895ec77369c
parent5a26c538b392c1dbcb81783e9173db603a88f44f (diff)
downloadjgit-66fc8345304087a9d5e97afc08cf340767f6f1d2.tar.gz
jgit-66fc8345304087a9d5e97afc08cf340767f6f1d2.tar.xz
jgit-66fc8345304087a9d5e97afc08cf340767f6f1d2.zip
Support remote aliases in repo manifest.
Change-Id: Icbe5761b9d8a4ae5305bfe45b2d042f214156fc8 Signed-off-by: Yuxuan 'fishy' Wang <fishywang@google.com>
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/gitrepo/RepoCommandTest.java24
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/gitrepo/RepoCommand.java7
2 files changed, 29 insertions, 2 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/gitrepo/RepoCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/gitrepo/RepoCommandTest.java
index 5f2aece47e..d24d375cbc 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/gitrepo/RepoCommandTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/gitrepo/RepoCommandTest.java
@@ -641,6 +641,30 @@ public class RepoCommandTest extends RepositoryTestCase {
assertTrue("We should have bar", file.exists());
}
+ @Test
+ public void testRemoteAlias() throws Exception {
+ StringBuilder xmlContent = new StringBuilder();
+ xmlContent.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
+ .append("<manifest>")
+ .append("<remote name=\"remote1\" fetch=\".\" alias=\"remote2\" />")
+ .append("<default revision=\"master\" remote=\"remote2\" />")
+ .append("<project path=\"foo\" name=\"")
+ .append(defaultUri)
+ .append("\" />")
+ .append("</manifest>");
+
+ Repository localDb = createWorkRepository();
+ JGitTestUtil.writeTrashFile(
+ localDb, "manifest.xml", xmlContent.toString());
+ RepoCommand command = new RepoCommand(localDb);
+ command
+ .setPath(localDb.getWorkTree().getAbsolutePath() + "/manifest.xml")
+ .setURI(rootUri)
+ .call();
+ File file = new File(localDb.getWorkTree(), "foo/hello.txt");
+ assertTrue("We should have foo", file.exists());
+ }
+
private void resolveRelativeUris() {
// Find the longest common prefix ends with "/" as rootUri.
defaultUri = defaultDb.getDirectory().toURI().toString();
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 3bf3c18840..6ff39a49e5 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/gitrepo/RepoCommand.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/gitrepo/RepoCommand.java
@@ -407,8 +407,11 @@ public class RepoCommand extends GitCommand<RevCommit> {
attributes.getValue("remote"), //$NON-NLS-1$
attributes.getValue("groups")); //$NON-NLS-1$
} else if ("remote".equals(qName)) { //$NON-NLS-1$
- remotes.put(attributes.getValue("name"), //$NON-NLS-1$
- attributes.getValue("fetch")); //$NON-NLS-1$
+ String alias = attributes.getValue("alias"); //$NON-NLS-1$
+ String fetch = attributes.getValue("fetch"); //$NON-NLS-1$
+ remotes.put(attributes.getValue("name"), fetch); //$NON-NLS-1$
+ if (alias != null)
+ remotes.put(alias, fetch);
} else if ("default".equals(qName)) { //$NON-NLS-1$
defaultRemote = attributes.getValue("remote"); //$NON-NLS-1$
defaultRevision = attributes.getValue("revision"); //$NON-NLS-1$

Back to the top