diff options
author | Matthias Sohn <matthias.sohn@sap.com> | 2014-12-04 01:47:21 +0100 |
---|---|---|
committer | Matthias Sohn <matthias.sohn@sap.com> | 2014-12-22 15:45:46 +0100 |
commit | 15e8b4fb2e0367f1f66569da4e32ac730feb9119 (patch) | |
tree | e08491b9bfd2dc9d3987ebd5a46a2b7371ddabad | |
parent | 563c1ad514ada9af13f2a1955a10000137804527 (diff) | |
download | jgit-15e8b4fb2e0367f1f66569da4e32ac730feb9119.tar.gz jgit-15e8b4fb2e0367f1f66569da4e32ac730feb9119.zip |
[pgm] Add option --bare to clone command
Change-Id: I528491e3e20d3c9ebe37fe3cd2bf85b4644d8698
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
-rw-r--r-- | org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/CloneTest.java | 20 | ||||
-rw-r--r-- | org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Clone.java | 5 |
2 files changed, 24 insertions, 1 deletions
diff --git a/org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/CloneTest.java b/org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/CloneTest.java index c65e162384..fe80388c0c 100644 --- a/org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/CloneTest.java +++ b/org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/CloneTest.java @@ -44,6 +44,7 @@ package org.eclipse.jgit.pgm; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; import java.io.File; import java.util.List; @@ -133,4 +134,23 @@ public class CloneTest extends CLIRepositoryTestCase { List<Ref> branches = git2.branchList().call(); assertEquals("expected 1 branch", 1, branches.size()); } + + public void testCloneBare() throws Exception { + createInitialCommit(); + + File gitDir = db.getDirectory(); + String sourcePath = gitDir.getAbsolutePath(); + String targetPath = (new File(sourcePath)).getParentFile() + .getParentFile().getAbsolutePath() + + "/target.git"; + StringBuilder cmd = new StringBuilder("git clone --bare ") + .append(sourcePath + " " + targetPath); + String[] result = execute(cmd.toString()); + assertArrayEquals(new String[] { + "Cloning into '" + targetPath + "'...", "", "" }, result); + Git git2 = Git.open(new File(targetPath)); + List<Ref> branches = git2.branchList().call(); + assertEquals("expected 1 branch", 1, branches.size()); + assertTrue("expected bare repository", git2.getRepository().isBare()); + } } diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Clone.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Clone.java index 88ea1202d7..cd6953cb05 100644 --- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Clone.java +++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Clone.java @@ -67,6 +67,9 @@ class Clone extends AbstractFetchCommand { @Option(name = "--no-checkout", aliases = { "-n" }, usage = "usage_noCheckoutAfterClone") private boolean noCheckout; + @Option(name = "--bare", usage = "usage_bareClone") + private boolean isBare; + @Argument(index = 0, required = true, metaVar = "metaVar_uriish") private String sourceUri; @@ -101,7 +104,7 @@ class Clone extends AbstractFetchCommand { branch = Constants.HEAD; CloneCommand command = Git.cloneRepository(); - command.setURI(sourceUri).setRemote(remoteName) + command.setURI(sourceUri).setRemote(remoteName).setBare(isBare) .setNoCheckout(noCheckout).setBranch(branch); command.setGitDir(gitdir == null ? null : new File(gitdir)); |