我已经让詹金斯建立并建立,由git提交和所有这些触发。示例日志如下所示:
00:00:00.016 Building in workspace D:\SomeWorkspace
00:00:00.016 > C:\Program Files (x86)\Git\bin\git.exe rev-parse --is-inside-work-tree # timeout=10
00:00:00.047 Fetching changes from the remote Git repository
00:00:00.047 > C:\Program Files (x86)\Git\bin\git.exe config remote.origin.url http://usr:pwd@gitRepoAddress.git/git/Repo.git # timeout=10
00:00:00.063 Fetching upstream changes from http://usr@gitRepoAddress.git/git/Repo.git
00:00:00.063 > C:\Program Files (x86)\Git\bin\git.exe --version # timeout=10
00:00:00.234 using .gitcredentials to set credentials
00:00:00.234 > C:\Program Files (x86)\Git\bin\git.exe config --local credential.helper store --file=\"C:\Path\To\Temp\git2724877017172338447.credentials\" # timeout=10
00:00:00.250 > C:\Program Files (x86)\Git\bin\git.exe fetch --tags --progress http://usr@gitRepoAddress.git/git/Repo.git +refs/heads/*:refs/remotes/origin/*
我想要做的是看看那些git命令的输出,这样我就可以做一些事情,比如仔细查看它使用的git版本,看看为什么git fetch
很慢,等等我可以&#39 ; t弄清楚如何显示额外的输出。有任何想法吗?当我从这个Windows框中安装的git-bash运行这些命令时,git fetch
运行得更快,我不知道如何调试Jenkins中发生的事情。
答案 0 :(得分:1)
Jenkins中有两个git实现,一个使用命令行“git.exe”工具,另一个使用Java实现,称为JGit。根据您的示例输出,它使用前者。
如果我们查看该实现,例如“fetch”命令,它似乎只是在成功时丢弃输出。
fetch命令的实现从这里开始(在回答时链接到“master”的快照):
执行()中的位有点,在第313行它调用launchCommandWithCredentials(...);
,它返回命令的输出。然而,它不存储在任何地方,因此被丢弃。
跟踪输出的返回方式:launchCommandWithCredentials方法从第1337行开始实现。在第1441行,它调用
launchCommandIn(...);
,然后从第1672行开始实现。在第1689行,它最终运行实际命令,在1691年它收集命令输出。如果返回代码不为0,即如果存在某些错误,则在第1693行引发异常(也包含命令输出),否则返回命令输出。这又由launchCommandWithCredentials 1441返回。现在我们回到第313行,其中返回值被丢弃。
查看checkout命令,似乎输出也会在成功时被丢弃。
因此,如果您真的需要输出,您可能需要