mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-06 21:45:50 +01:00
Improve performance of the commit history page.
This commit is contained in:
@@ -238,7 +238,7 @@ object JGitUtil {
|
|||||||
if(path.nonEmpty){
|
if(path.nonEmpty){
|
||||||
revWalk.setRevFilter(new RevFilter(){
|
revWalk.setRevFilter(new RevFilter(){
|
||||||
def include(walk: RevWalk, commit: RevCommit): Boolean = {
|
def include(walk: RevWalk, commit: RevCommit): Boolean = {
|
||||||
getDiffs(git, commit.getName).find(_.newPath == path).nonEmpty
|
getDiffs(git, commit.getName, false).find(_.newPath == path).nonEmpty
|
||||||
}
|
}
|
||||||
override def clone(): RevFilter = this
|
override def clone(): RevFilter = this
|
||||||
})
|
})
|
||||||
@@ -374,7 +374,7 @@ object JGitUtil {
|
|||||||
case e: MissingObjectException => None
|
case e: MissingObjectException => None
|
||||||
}
|
}
|
||||||
|
|
||||||
def getDiffs(git: Git, id: String): List[DiffInfo] = {
|
def getDiffs(git: Git, id: String, fetchContent: Boolean = true): List[DiffInfo] = {
|
||||||
@scala.annotation.tailrec
|
@scala.annotation.tailrec
|
||||||
def getCommitLog(i: java.util.Iterator[RevCommit], logs: List[RevCommit]): List[RevCommit] =
|
def getCommitLog(i: java.util.Iterator[RevCommit], logs: List[RevCommit]): List[RevCommit] =
|
||||||
i.hasNext match {
|
i.hasNext match {
|
||||||
@@ -405,7 +405,7 @@ object JGitUtil {
|
|||||||
|
|
||||||
import scala.collection.JavaConverters._
|
import scala.collection.JavaConverters._
|
||||||
git.diff.setNewTree(newTreeIter).setOldTree(oldTreeIter).call.asScala.map { diff =>
|
git.diff.setNewTree(newTreeIter).setOldTree(oldTreeIter).call.asScala.map { diff =>
|
||||||
if(FileTypeUtil.isImage(diff.getOldPath) || FileTypeUtil.isImage(diff.getNewPath)){
|
if(!fetchContent || FileTypeUtil.isImage(diff.getOldPath) || FileTypeUtil.isImage(diff.getNewPath)){
|
||||||
DiffInfo(diff.getChangeType, diff.getOldPath, diff.getNewPath, None, None)
|
DiffInfo(diff.getChangeType, diff.getOldPath, diff.getNewPath, None, None)
|
||||||
} else {
|
} else {
|
||||||
DiffInfo(diff.getChangeType, diff.getOldPath, diff.getNewPath,
|
DiffInfo(diff.getChangeType, diff.getOldPath, diff.getNewPath,
|
||||||
@@ -419,8 +419,11 @@ object JGitUtil {
|
|||||||
walk.addTree(revCommit.getTree)
|
walk.addTree(revCommit.getTree)
|
||||||
val buffer = new scala.collection.mutable.ListBuffer[DiffInfo]()
|
val buffer = new scala.collection.mutable.ListBuffer[DiffInfo]()
|
||||||
while(walk.next){
|
while(walk.next){
|
||||||
buffer.append(DiffInfo(ChangeType.ADD, null, walk.getPathString, None,
|
buffer.append((if(!fetchContent){
|
||||||
JGitUtil.getContent(git, walk.getObjectId(0), false).map(new String(_, "UTF-8"))))
|
DiffInfo(ChangeType.ADD, null, walk.getPathString, None, None)
|
||||||
|
} else {
|
||||||
|
DiffInfo(ChangeType.ADD, null, walk.getPathString, None, JGitUtil.getContent(git, walk.getObjectId(0), false).map(new String(_, "UTF-8")))
|
||||||
|
}))
|
||||||
}
|
}
|
||||||
walk.release
|
walk.release
|
||||||
buffer.toList
|
buffer.toList
|
||||||
|
|||||||
Reference in New Issue
Block a user