Skip to content

Commit

Permalink
Merge pull request #408 from xuwei-k/patch-1
Browse files Browse the repository at this point in the history
fix JGitCompletions memory leak
  • Loading branch information
bjaglin committed Apr 16, 2024
2 parents 88dd7fe + 2b622ec commit c3404db
Showing 1 changed file with 20 additions and 11 deletions.
31 changes: 20 additions & 11 deletions src/main/scala/scalafix/internal/sbt/JGitCompletions.scala
Expand Up @@ -18,32 +18,41 @@ class JGitCompletion(cwd: Path) {
RepositoryCache.FileKey
.isGitRepository(cwd.resolve(DOT_GIT).toFile, FS.DETECTED)

private val (refList, refs) =
val branchesAndTags: List[String] = {
if (isGitRepository) {
val builder = new FileRepositoryBuilder()
val repo = builder.readEnvironment().setWorkTree(cwd.toFile).build()
val refList0 =
val refList =
repo.getRefDatabase().getRefsByPrefix(RefDatabase.ALL).asScala
val git = new Git(repo)
val refs0 =
Try(git.log().setMaxCount(20).call().asScala.toList).getOrElse(Nil)
(refList0, refs0)
refList.map { ref => Repository.shortenRefName(ref.getName) }.toList
} else {
(Nil, Nil)
Nil
}

val branchesAndTags: List[String] =
refList.map { ref => Repository.shortenRefName(ref.getName) }.toList
}

private val dateFormatter = new GitDateFormatter(
GitDateFormatter.Format.RELATIVE
)
val last20Commits: List[(String, String)] =
val last20Commits: List[(String, String)] = {
val refs = {
if (isGitRepository) {
val builder = new FileRepositoryBuilder()
val repo = builder.readEnvironment().setWorkTree(cwd.toFile).build()
val git = new Git(repo)
val refs0 =
Try(git.log().setMaxCount(20).call().asScala.toList).getOrElse(Nil)
refs0
} else {
Nil
}
}

refs.map { ref =>
val relativeCommitTime =
dateFormatter.formatDate(refs.head.getCommitterIdent)
val abrev = ref.abbreviate(8).name
val short = ref.getShortMessage
(s"$abrev -- $short ($relativeCommitTime)", abrev)
}
}
}

0 comments on commit c3404db

Please sign in to comment.