Browse Source

Fixed fork origin determination if !git.cacheRepositoryList (issue-182)

tags/v1.2.1
James Moger 11 years ago
parent
commit
9910e56056
1 changed files with 22 additions and 3 deletions
  1. 22
    3
      src/com/gitblit/GitBlit.java

+ 22
- 3
src/com/gitblit/GitBlit.java View File

@@ -1760,20 +1760,39 @@ public class GitBlit implements ServletContextListener {
*/
public ForkModel getForkNetwork(String repository) {
if (settings.getBoolean(Keys.git.cacheRepositoryList, true)) {
// find the root
// find the root, cached
RepositoryModel model = repositoryListCache.get(repository.toLowerCase());
while (model.originRepository != null) {
model = repositoryListCache.get(model.originRepository);
}
ForkModel root = getForkModelFromCache(model.name);
return root;
} else {
// find the root, non-cached
RepositoryModel model = getRepositoryModel(repository.toLowerCase());
while (model.originRepository != null) {
model = getRepositoryModel(model.originRepository);
}
ForkModel root = getForkModel(model.name);
return root;
}
return null;
}
private ForkModel getForkModel(String repository) {
private ForkModel getForkModelFromCache(String repository) {
RepositoryModel model = repositoryListCache.get(repository.toLowerCase());
ForkModel fork = new ForkModel(model);
if (!ArrayUtils.isEmpty(model.forks)) {
for (String aFork : model.forks) {
ForkModel fm = getForkModelFromCache(aFork);
fork.forks.add(fm);
}
}
return fork;
}
private ForkModel getForkModel(String repository) {
RepositoryModel model = getRepositoryModel(repository.toLowerCase());
ForkModel fork = new ForkModel(model);
if (!ArrayUtils.isEmpty(model.forks)) {
for (String aFork : model.forks) {
ForkModel fm = getForkModel(aFork);

Loading…
Cancel
Save