diff options
author | Robin Rosenberg <robin.rosenberg@dewire.com> | 2013-02-13 00:27:52 +0100 |
---|---|---|
committer | Gerrit Code Review @ Eclipse.org <gerrit@eclipse.org> | 2013-02-16 10:38:54 -0500 |
commit | 29546877b158d45b3b8b1d8d2a02751db1759798 (patch) | |
tree | 5e3d7ea000f8c5fd2b48fd4e40ce9c3fe5312e02 /org.eclipse.jgit.pgm/src | |
parent | ae57189712eec3a2c54e8e7839d4e74f7010d16e (diff) | |
download | jgit-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.java | 1 | ||||
-rw-r--r-- | org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Clone.java | 15 |
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, |