summaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit.pgm/src
diff options
context:
space:
mode:
authorRobin Rosenberg <robin.rosenberg@dewire.com>2013-02-13 00:27:52 +0100
committerGerrit Code Review @ Eclipse.org <gerrit@eclipse.org>2013-02-16 10:38:54 -0500
commit29546877b158d45b3b8b1d8d2a02751db1759798 (patch)
tree5e3d7ea000f8c5fd2b48fd4e40ce9c3fe5312e02 /org.eclipse.jgit.pgm/src
parentae57189712eec3a2c54e8e7839d4e74f7010d16e (diff)
downloadjgit-29546877b158d45b3b8b1d8d2a02751db1759798.tar.gz
jgit-29546877b158d45b3b8b1d8d2a02751db1759798.zip
Add the --branch flag to the jgit clone command
--branch or -b allows the user to specify which branch to checkout after clone. Change-Id: Ie27533e5ecb43097862a8337a27a742b501e17a5
Diffstat (limited to 'org.eclipse.jgit.pgm/src')
-rw-r--r--org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/CLIText.java1
-rw-r--r--org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Clone.java15
2 files changed, 14 insertions, 2 deletions
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/CLIText.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/CLIText.java
index 552629eba1..807fe39db9 100644
--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/CLIText.java
+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/CLIText.java
@@ -180,6 +180,7 @@ public class CLIText extends TranslationBundle {
/***/ public String needApprovalToDestroyCurrentRepository;
/***/ public String noGitRepositoryConfigured;
/***/ public String noSuchFile;
+ /***/ public String noSuchRemoteRef;
/***/ public String noTREESectionInIndex;
/***/ public String nonFastForward;
/***/ public String notABranch;
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 9af0570f31..898203da29 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
@@ -74,6 +74,9 @@ class Clone extends AbstractFetchCommand {
@Option(name = "--origin", aliases = { "-o" }, metaVar = "metaVar_remoteName", usage = "usage_useNameInsteadOfOriginToTrackUpstream")
private String remoteName = Constants.DEFAULT_REMOTE_NAME;
+ @Option(name = "--branch", aliases = { "-b" }, metaVar = "metaVar_branchName", usage = "usage_checkoutBranchAfterClone")
+ private String branch;
+
@Argument(index = 0, required = true, metaVar = "metaVar_uriish")
private String sourceUri;
@@ -117,8 +120,16 @@ class Clone extends AbstractFetchCommand {
saveRemote(uri);
final FetchResult r = runFetch();
- final Ref branch = guessHEAD(r);
- doCheckout(branch);
+ final Ref checkoutRef;
+ if (branch == null)
+ checkoutRef = guessHEAD(r);
+ else {
+ checkoutRef = r.getAdvertisedRef(Constants.R_HEADS + branch);
+ if (checkoutRef == null)
+ throw die(MessageFormat.format(CLIText.get().noSuchRemoteRef,
+ branch));
+ }
+ doCheckout(checkoutRef);
}
private void saveRemote(final URIish uri) throws URISyntaxException,