我正在运行存储在git仓库中的java项目的maven构建。当发布计划在构建服务器上运行时(使用Bamboo),它会发出以下git命令:
git log -n1 --date-order master
但收到以下错误:
fatal: ambiguous argument 'master': unknown revision or path not in the working tree.
我当然有一个主分支,当我下拉回购并在本地运行命令时它工作正常。我的猜测是构建服务器上有不同的配置,但我不知道该寻找什么。我希望你们中的一位专家会有一些见解。
作为参考,这是我从maven构建中获得的实际错误日志。它发生在buildnumber-maven-plugin执行期间:
build 19-Aug-2015 15:10:28 [INFO] [INFO] --- buildnumber-maven-plugin:1.2:create (default) @ my-rest-project ---
build 19-Aug-2015 15:10:28 [INFO] [INFO] Verifying there are no local modifications ...
build 19-Aug-2015 15:10:28 [INFO] [INFO] Executing: /bin/sh -c cd /usr/local/atlassian/bamboo-home/xml-data/build-dir/MKL-RR-JOB1/target/checkout && git status --porcelain
build 19-Aug-2015 15:10:28 [INFO] [INFO] Working directory: /usr/local/atlassian/bamboo-home/xml-data/build-dir/MKL-RR-JOB1/target/checkout
build 19-Aug-2015 15:10:28 [INFO] [INFO] Executing: /bin/sh -c cd /usr/local/atlassian/bamboo-home/xml-data/build-dir/MKL-RR-JOB1/target/checkout && git log -n1 --date-order master
build 19-Aug-2015 15:10:28 [INFO] [INFO] Working directory: /usr/local/atlassian/bamboo-home/xml-data/build-dir/MKL-RR-JOB1/target/checkout
build 19-Aug-2015 15:10:28 [INFO] [ERROR] Provider message:
build 19-Aug-2015 15:10:28 [INFO] [ERROR] The git-log command failed.
build 19-Aug-2015 15:10:28 [INFO] [ERROR] Command output:
build 19-Aug-2015 15:10:28 [INFO] [ERROR] fatal: ambiguous argument 'master': unknown revision or path not in the working tree.
build 19-Aug-2015 15:10:28 [INFO] Use '--' to separate paths from revisions, like this:
build 19-Aug-2015 15:10:28 [INFO] 'git <command> [<revision>...] -- [<file>...]'
答案 0 :(得分:1)
在运行maven-release-plugin 2.2及更低版本时可以正常工作。
事实证明,当版本插件介于版本2.3-2.5之间时,maven-release-plugin和maven-buildnumber-plugin之间存在某种冲突(2.5是本文撰写时的最新版本)。 p>
我不确定错误的原因究竟是什么,但是日志显示release-plugin在这些版本中执行额外的git命令,它会以某种方式导致buildnumber插件在其失败后立即运行。
具体来说,它运行git ls-remote ssh://git@reponame.git
并在临时目录中运行它,而不是运行所有其他git命令的目录。我不确定这是Maven故障还是Bamboo故障。无论如何,我现在知道如何解决它。
<强>更新强> 在遇到另一个强制我将maven-release-plugin升级到2.5的bamboo / maven-release / git问题后,我确定绕过所有这一切的唯一方法就是删除buildnumber插件。最终导致问题的是buildnumber插件,毕竟它对我的工作流程并不重要。
答案 1 :(得分:1)
致命:含糊不清的争论'主人':未知的修订或路径不在工作树中。
我遇到了同样的问题。这似乎是一些git版本问题,其中在我们的CI框上运行的git命令(或包)与buildnumer-maven-plugin生成的命令不兼容。它在我的Mac上本地工作。
在我们的CI框中修改它的是将doUpdate
更改为false. We already had the
doCheck setting as
false`所以现在我们的配置如下:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
...
<configuration>
<doCheck>false</doCheck>
<doUpdate>false</doUpdate> <!-- changed this from true -->
</configuration>
</plugin>
这会导致buildnumber-maven-plugin发出以下git命令,它似乎在任何地方都能正常工作:
[INFO] --- buildnumber-maven-plugin:1.4:create (default) @ parent ---
[INFO] Executing: /bin/sh -c cd '/build/parent' && 'git' 'rev-parse' '--verify' 'HEAD'
答案 2 :(得分:0)
构建服务器可能只是来自您的而不是git存储库。这是许多构建服务器中非常常见的设置,您可能需要检查是否是这种情况。
许多构建服务器还提供了检出repo的选项。