From 44812c02e844c91869c3c43f5187fe23b5426275 Mon Sep 17 00:00:00 2001 From: Kaloyan Raev Date: Mon, 24 Feb 2014 16:03:51 +0200 Subject: [PATCH] CLI clone command should support --no-checkout doCheckout() is called only if --no-checkout option is not set. Bug: 428917 Change-Id: I350bef446dd7a37613b9506aae99679569bd36e1 Signed-off-by: Kaloyan Raev Signed-off-by: Matthias Sohn --- .../jgit/pgm/internal/CLIText.properties | 1 + .../src/org/eclipse/jgit/pgm/Clone.java | 24 ++++++++++++------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/internal/CLIText.properties b/org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/internal/CLIText.properties index ca32479ad..53c1b3520 100644 --- a/org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/internal/CLIText.properties +++ b/org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/internal/CLIText.properties @@ -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 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 888f54da2..d9a877cd6 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 @@ -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,