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>
This commit is contained in:
Jonathan Nieder 2015-06-10 15:43:48 -07:00
parent d2ade728a1
commit 852963db3b
1 changed files with 6 additions and 0 deletions

View File

@ -420,9 +420,15 @@ public CloneCommand setRemote(String remote) {
* the initial branch to check out when cloning the repository.
* Can be specified as ref name (<code>refs/heads/master</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
*/
public CloneCommand setBranch(String branch) {
if (branch == null) {
branch = Constants.HEAD;
}
this.branch = branch;
return this;
}