diff options
author | Shawn Pearce <sop@google.com> | 2012-10-25 18:13:56 -0400 |
---|---|---|
committer | Gerrit Code Review @ Eclipse.org <gerrit@eclipse.org> | 2012-10-25 18:13:56 -0400 |
commit | bc8794eb21319c3251cd778133541d60856eb626 (patch) | |
tree | 2535faa08a8b89ea483f17b036f1796f9ca58f65 /org.eclipse.jgit/src/org/eclipse | |
parent | 71ac75fea3634763252cca88810ed25495bf2716 (diff) | |
parent | 8572526765447180931de7f5ddc1f1fa5584855b (diff) | |
download | jgit-bc8794eb21319c3251cd778133541d60856eb626.tar.gz jgit-bc8794eb21319c3251cd778133541d60856eb626.zip |
Merge "Extend Javadoc of CheckoutCommand and add examples"
Diffstat (limited to 'org.eclipse.jgit/src/org/eclipse')
-rw-r--r-- | org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutCommand.java | 106 |
1 files changed, 96 insertions, 10 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutCommand.java index 57f47a4968..9d3bf561b5 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutCommand.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutCommand.java @@ -83,7 +83,42 @@ import org.eclipse.jgit.treewalk.filter.PathFilterGroup; import org.eclipse.jgit.util.FileUtils; /** - * Checkout a branch to the working tree + * Checkout a branch to the working tree. + * <p> + * Examples (<code>git</code> is a {@link Git} instance): + * <p> + * Check out an existing branch: + * + * <pre> + * git.checkout().setName("feature").call(); + * </pre> + * <p> + * Check out paths from the index: + * + * <pre> + * git.checkout().addPath("file1.txt").addPath("file2.txt").call(); + * </pre> + * <p> + * Check out a path from a commit: + * + * <pre> + * git.checkout().setStartPoint("HEADˆ").addPath("file1.txt").call(); + * </pre> + * + * <p> + * Create a new branch and check it out: + * + * <pre> + * git.checkout().setCreateBranch(true).setName("newbranch").call(); + * </pre> + * <p> + * Create a new tracking branch for a remote branch and check it out: + * + * <pre> + * git.checkout().setCreateBranch(true).setName("stable") + * .setUpstreamMode(SetupUpstreamMode.SET_UPSTREAM) + * .setStartPoint("origin/stable").call(); + * </pre> * * @see <a * href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html" @@ -241,8 +276,15 @@ public class CheckoutCommand extends GitCommand<Ref> { } /** + * Add a single path to the list of paths to check out. To check out all + * paths, use {@link #setAllPaths(boolean)}. + * <p> + * If this option is set, neither the {@link #setCreateBranch(boolean)} nor + * {@link #setName(String)} option is considered. In other words, these + * options are exclusive. + * * @param path - * Path to update in the working tree and index. + * path to update in the working tree and index * @return {@code this} */ public CheckoutCommand addPath(String path) { @@ -252,14 +294,19 @@ public class CheckoutCommand extends GitCommand<Ref> { } /** - * Set whether to checkout all paths + * Set whether to checkout all paths. * <p> * This options should be used when you want to do a path checkout on the * entire repository and so calling {@link #addPath(String)} is not possible * since empty paths are not allowed. + * <p> + * If this option is set, neither the {@link #setCreateBranch(boolean)} nor + * {@link #setName(String)} option is considered. In other words, these + * options are exclusive. * * @param all - * true to checkout all paths, false otherwise + * <code>true</code> to checkout all paths, <code>false</code> + * otherwise * @return {@code this} * @since 2.0 */ @@ -361,8 +408,20 @@ public class CheckoutCommand extends GitCommand<Ref> { } /** + * Specify the name of the branch or commit to check out, or the new branch + * name. + * <p> + * When only checking out paths and not switching branches, use + * {@link #setStartPoint(String)} or {@link #setStartPoint(RevCommit)} to + * specify from which branch or commit to check out files. + * <p> + * When {@link #setCreateBranch(boolean)} is set to <code>true</code>, use + * this method to set the name of the new branch to create and + * {@link #setStartPoint(String)} or {@link #setStartPoint(RevCommit)} to + * specify the start point of the branch. + * * @param name - * the name of the new branch + * the name of the branch or commit * @return this instance */ public CheckoutCommand setName(String name) { @@ -372,6 +431,14 @@ public class CheckoutCommand extends GitCommand<Ref> { } /** + * Specify whether to create a new branch. + * <p> + * If <code>true</code> is used, the name of the new branch must be set + * using {@link #setName(String)}. The commit at which to start the new + * branch can be set using {@link #setStartPoint(String)} or + * {@link #setStartPoint(RevCommit)}; if not specified, HEAD is used. Also + * see {@link #setUpstreamMode} for setting up branch tracking. + * * @param createBranch * if <code>true</code> a branch will be created as part of the * checkout and set to the specified start point @@ -384,6 +451,8 @@ public class CheckoutCommand extends GitCommand<Ref> { } /** + * Specify to force the ref update in case of a branch switch. + * * @param force * if <code>true</code> and the branch with the given name * already exists, the start-point of an existing branch will be @@ -398,9 +467,16 @@ public class CheckoutCommand extends GitCommand<Ref> { } /** + * Set the name of the commit that should be checked out. + * <p> + * When checking out files and this is not specified or <code>null</code>, + * the index is used. + * <p> + * When creating a new branch, this will be used as the start point. If not + * specified or <code>null</code>, the current HEAD is used. + * * @param startPoint - * corresponds to the start-point option; if <code>null</code>, - * the current HEAD will be used + * commit name to check out * @return this instance */ public CheckoutCommand setStartPoint(String startPoint) { @@ -411,9 +487,16 @@ public class CheckoutCommand extends GitCommand<Ref> { } /** + * Set the commit that should be checked out. + * <p> + * When creating a new branch, this will be used as the start point. If not + * specified or <code>null</code>, the current HEAD is used. + * <p> + * When checking out files and this is not specified or <code>null</code>, + * the index is used. + * * @param startCommit - * corresponds to the start-point option; if <code>null</code>, - * the current HEAD will be used + * commit to check out * @return this instance */ public CheckoutCommand setStartPoint(RevCommit startCommit) { @@ -424,6 +507,9 @@ public class CheckoutCommand extends GitCommand<Ref> { } /** + * When creating a branch with {@link #setCreateBranch(boolean)}, this can + * be used to configure branch tracking. + * * @param mode * corresponds to the --track/--no-track options; may be * <code>null</code> @@ -437,7 +523,7 @@ public class CheckoutCommand extends GitCommand<Ref> { } /** - * @return the result + * @return the result, never <code>null</code> */ public CheckoutResult getResult() { if (status == null) |