Fix API ListBranchCommand for listmode 'all'

If remote branches are present they can not be added
to the RefMap from the local branches - the two RefMaps
have a different value of 'prefix' and consequently an
IllegalArgumentException is thrown.
This commit is contained in:
Roberto Tyley 2011-01-12 14:34:10 +00:00
parent be38185a03
commit 944fcdae66
2 changed files with 9 additions and 1 deletions

View File

@ -189,6 +189,12 @@ public void testCreateAndList() throws Exception {
- allBefore);
}
@Test
public void testListAllBranchesShouldNotDie() throws Exception {
Git git = setUpRepoWithRemote();
git.branchList().setListMode(ListMode.ALL).call();
}
@Test
public void testCreateFromCommit() throws Exception {
Ref branch = git.branchCreate().setName("FromInitial").setStartPoint(

View File

@ -49,6 +49,7 @@
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.HashMap;
import org.eclipse.jgit.api.errors.JGitInternalException;
import org.eclipse.jgit.lib.Constants;
@ -100,7 +101,8 @@ public List<Ref> call() throws JGitInternalException {
} else if (listMode == ListMode.REMOTE) {
refList = repo.getRefDatabase().getRefs(Constants.R_REMOTES);
} else {
refList = repo.getRefDatabase().getRefs(Constants.R_HEADS);
refList = new HashMap<String,Ref>(repo.getRefDatabase().getRefs(
Constants.R_HEADS));
refList.putAll(repo.getRefDatabase().getRefs(
Constants.R_REMOTES));
}