2

我将如何设置我的开发环境来捕获断点并调试 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)

我会怎么看输出?

4

1 回答 1

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. 调试!

因此,我们的想法是以调试模式运行 JVM(Java 可能与 Groovy 略有不同)。实现这一点的最简单方法是通过包装文件。

于 2013-02-18T23:50:52.593 回答