From 4b7a5ac5e959ff92e2db88c870b75eee622e403f Mon Sep 17 00:00:00 2001 From: JFronny Date: Tue, 15 Oct 2024 16:21:30 +0200 Subject: [PATCH] fix(autoversion): filter tags in other branches --- .../src/main/kotlin/io/gitlab/jfronny/scripts/JGitExt.kt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/convention/src/main/kotlin/io/gitlab/jfronny/scripts/JGitExt.kt b/convention/src/main/kotlin/io/gitlab/jfronny/scripts/JGitExt.kt index 30d361d..e265fa3 100644 --- a/convention/src/main/kotlin/io/gitlab/jfronny/scripts/JGitExt.kt +++ b/convention/src/main/kotlin/io/gitlab/jfronny/scripts/JGitExt.kt @@ -37,6 +37,7 @@ fun Git.log(since: AnyObjectId? = null, until: AnyObjectId? = null): List = repository.refDatabase.getRefsByPrefix(Constants.R_TAGS) .map { it.resolveTag(repository) } + .filter { it.checkInTree(repository) } .sortedByDescending { it.dateTime } fun Ref.resolveTag(repo: Repository): Tag = RevWalk(repo).use { walk -> @@ -55,6 +56,10 @@ fun Ref.resolveTag(repo: Repository): Tag = RevWalk(repo).use { walk -> return rev.resolve((target as RevCommit).resolve(repo)) } +fun Tag.checkInTree(repo: Repository): Boolean = RevWalk(repo).use { walk -> + walk.isMergedInto(walk.parseCommit(commit.id), walk.parseCommit(repo.resolve("HEAD"))) +} + fun RevTag.resolve(commit: Commit): Tag { val ident = taggerIdent return Tag(