Как получить общее количество для тегов git - PullRequest
1 голос
/ 01 апреля 2019

Я хочу получить общее количество тегов в репозитории

Хранилище 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
    }
}

Я ссылался на этот ТАК вопрос , но без правильного ответа

Ответы [ 2 ]

1 голос
/ 01 апреля 2019

Если вы не против использования команд помимо git ... git tag | wc -l

0 голосов
/ 02 апреля 2019

Я понял это с помощью приведенного ниже решения. Ответ @ EncryptedWatermelon помог мне добраться до этого решения. Однако я более открыт для лучшего решения, чем это.

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

@ EncryptedWatermelon Спасибо за подсказку.

...