summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/CLIText.properties3
-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
3 files changed, 17 insertions, 2 deletions
diff --git a/org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/CLIText.properties b/org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/CLIText.properties
index 0a4d90b088..f5a0271bf3 100644
--- a/org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/CLIText.properties
+++ b/org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/CLIText.properties
@@ -76,6 +76,7 @@ metaVar_author=AUTHOR
metaVar_base=base
metaVar_blameL=START,END
metaVar_blameReverse=START..END
+metaVar_branchName=branch
metaVar_bucket=BUCKET
metaVar_command=command
metaVar_commandDetail=DETAIL
@@ -116,6 +117,7 @@ mostCommonlyUsedCommandsAre=The most commonly used commands are:
needApprovalToDestroyCurrentRepository=Need approval to destroy current repository
noGitRepositoryConfigured=No Git repository configured.
noSuchFile=no such file: {0}
+noSuchRemoteRef=no such remote ref: ''{0}''
noTREESectionInIndex=no 'TREE' section in index
nonFastForward=non-fast forward
notABranch={0} is not a branch
@@ -274,5 +276,6 @@ usage_symbolicVersionForTheProject=Symbolic version for the project
usage_tagMessage=tag message
usage_updateRemoteRefsFromAnotherRepository=Update remote refs from another repository
usage_useNameInsteadOfOriginToTrackUpstream=use <name> instead of 'origin' to track upstream
+usage_checkoutBranchAfterClone=checkout named branch instead of remotes's HEAD
usage_viewCommitHistory=View commit history
warningNoCommitGivenOnCommandLine=warning: No commit given on command line, assuming {0}
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,