]> source.dussan.org Git - jgit.git/commitdiff
CLI clone command should support --no-checkout 41/22441/2
authorKaloyan Raev <kaloyan.r@zend.com>
Mon, 24 Feb 2014 14:03:51 +0000 (16:03 +0200)
committerMatthias Sohn <matthias.sohn@sap.com>
Wed, 26 Feb 2014 14:52:25 +0000 (15:52 +0100)
doCheckout() is called only if --no-checkout option is not set.

Bug: 428917
Change-Id: I350bef446dd7a37613b9506aae99679569bd36e1
Signed-off-by: Kaloyan Raev <kaloyan.r@zend.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/internal/CLIText.properties
org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Clone.java

index ca32479adbc7c411926a6daa1c85c4d06371d28d..53c1b352075240761d5f7d11ca8e24bc6cd589a0 100644 (file)
@@ -293,6 +293,7 @@ usage_mergeRef=Ref to be merged
 usage_mergeStrategy=Use the given merge strategy. Can be supplied more than once to specify them in the order they should be tried. If there is no -s option, the recursive strategy is used. Currently the following strategies are supported: ours, theirs, simple-two-way-in-core, resolve, recursive
 usage_moveRenameABranch=move/rename a branch
 usage_nameStatus=show only name and status of files
+usage_noCheckoutAfterClone=no checkout of HEAD is performed after the clone is complete
 usage_noCommit=Don't commit after a successful merge
 usage_noPrefix=do not show any source or destination prefix
 usage_noRenames=disable rename detection
index 888f54da2b9ad3d991672768639c457451993b67..d9a877cd67820459286051a4cd2c40b42cd20efd 100644 (file)
@@ -79,6 +79,9 @@ class Clone extends AbstractFetchCommand {
        @Option(name = "--branch", aliases = { "-b" }, metaVar = "metaVar_branchName", usage = "usage_checkoutBranchAfterClone")
        private String branch;
 
+       @Option(name = "--no-checkout", aliases = { "-n" }, usage = "usage_noCheckoutAfterClone")
+       private boolean noCheckout;
+
        @Argument(index = 0, required = true, metaVar = "metaVar_uriish")
        private String sourceUri;
 
@@ -122,16 +125,19 @@ class Clone extends AbstractFetchCommand {
 
                saveRemote(uri);
                final FetchResult r = runFetch();
-               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));
+
+               if (!noCheckout) {
+                       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);
                }
-               doCheckout(checkoutRef);
        }
 
        private void saveRemote(final URIish uri) throws URISyntaxException,