调试git hook的执行

时间:2013-02-18 15:15:44

标签: git groovy githooks

如何设置我的开发环境以捕获断点并调试git钩子的执行?让我们说焦点的钩子是预先提交的,需要调试以下groovy脚本吗?

#!/usr/bin/env groovy

// Arguments for git log command.
def logArgs = ['max-count': '1', 'pretty': 'format:%an commited %s {%h}']

// Invoke git log command.
def gitLog = logArgs.inject(['git', 'log']) { cmd, k, v -> 
    cmd << "--$k=$v" 
}.execute()

// Get git log message to be used as notification message.
def message = gitLog.text
println(message)

我该怎么做才能看到输出?

1 个答案:

答案 0 :(得分:2)

我建议你做以下事情:

  1. 创建actual_hook_file.groovy并将所有挂钩代码放在那里。
  2. 仅在您使用的钩子中使用:groovy -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=9090,server=n,suspend=y actual_hook_file.groovy
  3. 触发器挂钩
  4. 使用调试工具(例如Remote Java Application in Eclipse)连接到9090端口上的JVM。
  5. 调试!
  6. 因此,我们的想法是在调试模式下运行JVM(对于Java,它可能与Groovy有点不同)。实现这一目标的最简单方法是通过包装文件。