如何获得git标签的总数

时间:2019-04-01 13:45:07

标签: git gradle android-gradle versioning

我想获取存储库中标签总数的数字

grgit存储库已经解决了该问题。

git = org.ajoberstar.grgit.Grgit.open()
git.tag.list().size()

但是它很时髦,我想要它的gradle版本。

git describe --tags $(git rev-list --tags --count)

上面的代码给出了提交的总数

到目前为止,我有以下代码段可以获取提交的总数。

versionCode = { ->
    try {
        def stdout = new ByteArrayOutputStream()
        exec {
            commandLine 'git', 'rev-list', '--first-parent', '--count', 'HEAD'
            standardOutput = stdout
        }
        return Integer.parseInt(stdout.toString().trim())
    }
    catch (ignored) {
        return -1
    }
}

我引用了this SO question,但没有正确的答案

2 个答案:

答案 0 :(得分:1)

如果您不介意使用git以外的命令... git tag | wc -l

答案 1 :(得分:0)

我通过以下解决方案解决了这个问题。 @EncryptedWatermelon答案帮助我获得了此解决方案。但是,我比这更愿意寻求更好的解决方案。

getVersionCode = {
    def proc = 'git tag'.execute() | 'wc -l'.execute()
    proc.waitFor()
    return proc.text
}

@EncryptedWatermelon感谢您的提示。