我的要求是捕获两个标记之间的提交消息,我想使用grgit插件来实现这一点。现在,为grgit提供了一个文档,我使用Log操作来获取两个标记之间的提交日志。我在一个任务中写这个,并从命令提示符ec = ecuting。我的任务看起来像这样:
task showLog <<{
def grgit = org.ajoberstar.grgit.Grgit.open(dir: 'C:\\Rep9')
def history = grgit.log()
}
执行gradlew showLog之类的任务。我的任务是 BUILD SUCCESSFUL ,但我无法在任何地方看到日志。我想查看整个日志,可能会使用(我不确定)捕获我的消息的其他操作,如果有人可以提供帮助,那将非常棒。
答案 0 :(得分:0)
当您在log()
对象上调用grgit
时,通过LogOp
,您将获得Commit
个对象的列表。然后,您可以迭代这些对象,并使用findAll
或grep
找到您需要的内容。
对于代码,您可以使用TagService
对其进行操作。要获取所提及服务的实例,请调用grgit.tag
然后via list()
操作,以获取Tag
的列表。用它来查找您感兴趣的标签。
Here是一个演示。
相关部分:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'org.ajoberstar:grgit:1.4.1'
}
}
import org.ajoberstar.grgit.Grgit
task showLog <<{
def grgit = project.file('so').exists() ? Grgit.open('so') : Grgit.clone(dir: 'so', uri: 'git@github.com:Opalo/stackoverflow.git')
def log = grgit.log()
log.each { l ->
logger.lifecycle("ID: $l.id, Author: $l.author")
}
grgit.tag.list().each { t ->
logger.lifecycle("Commit: $t.commit.id, tagger: $t.tagger.email")
}
}