mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-06 13:35:50 +01:00
Release TreeWalk in recuresive function.
This commit is contained in:
@@ -226,18 +226,17 @@ object JGitUtil {
|
|||||||
|
|
||||||
@tailrec
|
@tailrec
|
||||||
def simplifyPath(tuple: (ObjectId, FileMode, String, String, Option[String])): (ObjectId, FileMode, String, String, Option[String]) = {
|
def simplifyPath(tuple: (ObjectId, FileMode, String, String, Option[String])): (ObjectId, FileMode, String, String, Option[String]) = {
|
||||||
val walk = new TreeWalk(git.getRepository)
|
|
||||||
walk.addTree(tuple._1)
|
|
||||||
val list = new scala.collection.mutable.ListBuffer[(ObjectId, FileMode, String, String, Option[String])]
|
val list = new scala.collection.mutable.ListBuffer[(ObjectId, FileMode, String, String, Option[String])]
|
||||||
while (walk.next()) {
|
using(new TreeWalk(git.getRepository)) { walk =>
|
||||||
if (list.size > 0)
|
walk.addTree(tuple._1)
|
||||||
return tuple
|
while (walk.next() && list.size < 2) {
|
||||||
val linkUrl = if (walk.getFileMode(0) == FileMode.GITLINK) {
|
val linkUrl = if (walk.getFileMode(0) == FileMode.GITLINK) {
|
||||||
getSubmodules(git, revCommit.getTree).find(_.path == walk.getPathString).map(_.url)
|
getSubmodules(git, revCommit.getTree).find(_.path == walk.getPathString).map(_.url)
|
||||||
} else None
|
} else None
|
||||||
list.append((walk.getObjectId(0), walk.getFileMode(0), tuple._3 + "/" + walk.getPathString, tuple._4 + "/" + walk.getNameString, linkUrl))
|
list.append((walk.getObjectId(0), walk.getFileMode(0), tuple._3 + "/" + walk.getPathString, tuple._4 + "/" + walk.getNameString, linkUrl))
|
||||||
}
|
}
|
||||||
if (list.size == 0 || list.exists(_._2 != FileMode.TREE))
|
}
|
||||||
|
if (list.size != 1 || list.exists(_._2 != FileMode.TREE))
|
||||||
tuple
|
tuple
|
||||||
else
|
else
|
||||||
simplifyPath(list(0))
|
simplifyPath(list(0))
|
||||||
|
|||||||
Reference in New Issue
Block a user