Browse Source

Treat CloneCommand.setBranch(null) as setBranch("HEAD")

This method is documented to take a branch name (not a possibly null
string).  The only way a caller could have set null without either
re-setting to a sane value afterward or producing NullPointerException
was to also call setNoCheckout(true), in which case there would have
been no reason to set the branch in the first place.

Make setBranch(null) request the default behavior (remote's default
branch) instead, imitating C git's clone --no-branch.

Change-Id: I960e7046b8d5b5bc75c7f3688f3a075d3a951b00
Signed-off-by: Jonathan Nieder <jrn@google.com>
stable-4.1
Jonathan Nieder 10 years ago
parent
commit
852963db3b
  1. 6
      org.eclipse.jgit/src/org/eclipse/jgit/api/CloneCommand.java

6
org.eclipse.jgit/src/org/eclipse/jgit/api/CloneCommand.java

@ -420,9 +420,15 @@ public class CloneCommand extends TransportCommand<CloneCommand, Git> {
* the initial branch to check out when cloning the repository. * the initial branch to check out when cloning the repository.
* Can be specified as ref name (<code>refs/heads/master</code>), * Can be specified as ref name (<code>refs/heads/master</code>),
* branch name (<code>master</code>) or tag name (<code>v1.2.3</code>). * branch name (<code>master</code>) or tag name (<code>v1.2.3</code>).
* The default is to use the branch pointed to by the cloned
* repository's HEAD and can be requested by passing {@code null}
* or <code>HEAD</code>.
* @return this instance * @return this instance
*/ */
public CloneCommand setBranch(String branch) { public CloneCommand setBranch(String branch) {
if (branch == null) {
branch = Constants.HEAD;
}
this.branch = branch; this.branch = branch;
return this; return this;
} }

Loading…
Cancel
Save