fix(autoversion): filter tags in other branches
This commit is contained in:
parent
04f130951e
commit
4b7a5ac5e9
@ -37,6 +37,7 @@ fun Git.log(since: AnyObjectId? = null, until: AnyObjectId? = null): List<Commit
|
||||
|
||||
fun Git.getTags(): List<Tag> = 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(
|
||||
|
Loading…
Reference in New Issue
Block a user