(refs #50)Fix search logic in empty repository

This commit is contained in:
Tomofumi Tanaka
2013-07-24 16:46:46 +09:00
parent cb94447290
commit 62a6d74393
2 changed files with 18 additions and 12 deletions

View File

@@ -29,20 +29,24 @@ trait RepositorySearchService { self: IssuesService =>
def countFiles(owner: String, repository: String, query: String): Int = def countFiles(owner: String, repository: String, query: String): Int =
JGitUtil.withGit(getRepositoryDir(owner, repository)){ git => JGitUtil.withGit(getRepositoryDir(owner, repository)){ git =>
searchRepositoryFiles(git, query).length if(JGitUtil.isEmpty(git)) 0 else searchRepositoryFiles(git, query).length
} }
def searchFiles(owner: String, repository: String, query: String): List[FileSearchResult] = def searchFiles(owner: String, repository: String, query: String): List[FileSearchResult] =
JGitUtil.withGit(getRepositoryDir(owner, repository)){ git => JGitUtil.withGit(getRepositoryDir(owner, repository)){ git =>
val files = searchRepositoryFiles(git, query) if(JGitUtil.isEmpty(git)){
val commits = JGitUtil.getLatestCommitFromPaths(git, files.toList.map(_._1), "HEAD") Nil
files.map { case (path, text) => } else {
val (highlightText, lineNumber) = getHighlightText(text, query) val files = searchRepositoryFiles(git, query)
FileSearchResult( val commits = JGitUtil.getLatestCommitFromPaths(git, files.toList.map(_._1), "HEAD")
path, files.map { case (path, text) =>
commits(path).getCommitterIdent.getWhen, val (highlightText, lineNumber) = getHighlightText(text, query)
highlightText, FileSearchResult(
lineNumber) path,
commits(path).getCommitterIdent.getWhen,
highlightText,
lineNumber)
}
} }
} }

View File

@@ -524,6 +524,8 @@ object JGitUtil {
} }
} }
def isEmpty(git: Git): Boolean = git.getRepository.resolve(Constants.HEAD) == null
private def setReceivePack(repository: org.eclipse.jgit.lib.Repository): Unit = { private def setReceivePack(repository: org.eclipse.jgit.lib.Repository): Unit = {
val config = repository.getConfig val config = repository.getConfig
config.setBoolean("http", null, "receivepack", true) config.setBoolean("http", null, "receivepack", true)