Merge "Always checkout master when it matches the advertised HEAD"
This commit is contained in:
commit
e9f20c982a
|
@ -236,4 +236,20 @@ public void testCloneRepositoryWhenDestinationDirectoryExistsAndIsNotEmpty()
|
||||||
assertTrue(e.getMessage().contains(dirName));
|
assertTrue(e.getMessage().contains(dirName));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testCloneRepositoryWithMultipleHeadBranches() throws Exception {
|
||||||
|
git.checkout().setName(Constants.MASTER).call();
|
||||||
|
git.branchCreate().setName("a").call();
|
||||||
|
|
||||||
|
File directory = createTempDirectory("testCloneRepositoryWithMultipleHeadBranches");
|
||||||
|
CloneCommand clone = Git.cloneRepository();
|
||||||
|
clone.setDirectory(directory);
|
||||||
|
clone.setURI("file://" + git.getRepository().getWorkTree().getPath());
|
||||||
|
Git git2 = clone.call();
|
||||||
|
addRepoToClose(git2.getRepository());
|
||||||
|
assertNotNull(git2);
|
||||||
|
|
||||||
|
assertEquals(Constants.MASTER, git2.getRepository().getBranch());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -229,6 +229,12 @@ private Ref findBranchToCheckout(FetchResult result) {
|
||||||
final Ref idHEAD = result.getAdvertisedRef(Constants.HEAD);
|
final Ref idHEAD = result.getAdvertisedRef(Constants.HEAD);
|
||||||
if (idHEAD == null)
|
if (idHEAD == null)
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
|
Ref master = result.getAdvertisedRef(Constants.R_HEADS
|
||||||
|
+ Constants.MASTER);
|
||||||
|
if (master != null && master.getObjectId().equals(idHEAD.getObjectId()))
|
||||||
|
return master;
|
||||||
|
|
||||||
Ref foundBranch = null;
|
Ref foundBranch = null;
|
||||||
for (final Ref r : result.getAdvertisedRefs()) {
|
for (final Ref r : result.getAdvertisedRefs()) {
|
||||||
final String n = r.getName();
|
final String n = r.getName();
|
||||||
|
|
Loading…
Reference in New Issue