]> source.dussan.org Git - gitblit.git/commitdiff
Fixed fork origin determination if !git.cacheRepositoryList (issue-182)
authorJames Moger <james.moger@gitblit.com>
Wed, 2 Jan 2013 21:35:16 +0000 (16:35 -0500)
committerJames Moger <james.moger@gitblit.com>
Wed, 2 Jan 2013 21:35:16 +0000 (16:35 -0500)
src/com/gitblit/GitBlit.java

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