用于显示列表的Git Command

时间:2016-01-18 05:28:55

标签: git gradle

我的要求是捕获两个标记之间的提交消息,我想使用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 ,但我无法在任何地方看到日志。我想查看整个日志,可能会使用(我不确定)捕获我的消息的其他操作,如果有人可以提供帮助,那将非常棒。

1 个答案:

答案 0 :(得分:0)

当您在log()对象上调用grgit时,通过LogOp,您将获得Commit个对象的列表。然后,您可以迭代这些对象,并使用findAllgrep找到您需要的内容。

对于代码,您可以使用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")
  }
}