git-log错误:模糊的参数'master'

时间:2015-08-21 15:46:09

标签: git buildnumber-maven-plugin

我正在运行存储在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>...]'

3 个答案:

答案 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的选项。