【问题标题】:cannot create tag无法创建标签
【发布时间】:2013-02-22 02:58:45
【问题描述】:

我有一台运行 Windows 2008R2 的带有 CruiseControl.Net 的构建机器。源代码在 git 存储库中。 CruiseControl 使用 cygwin 访问 git 存储库。除了标记外,一切都很好。我想标记每个成功的构建,所以这里是 ccnet.config 的一部分:

<sourcecontrol type="git">
    <repository>git://xxx.xxx.xxx.xxx/Project</repository>
    <executable>C:\cygwin\bin\git</executable>
    <branch>projectName/branchToBuild</branch>
    <workingDirectory>Sources</workingDirectory>
    <autoGetSource>true</autoGetSource>
    <tagOnSuccess>true</tagOnSuccess>
    <tagCommitMessage>CCNet Build {0}</tagCommitMessage>
    <tagNameFormat>project/builds/v{0}</tagNameFormat>
    <committerName>CCNet</committerName>
</sourcecontrol>

但是构建失败并出现错误:

ThoughtWorks.CruiseControl.Core.CruiseControlException: Source control operation failed: error: unable to create temporary sha1 filename : No such file or directory

error: unable to write tag file
. Process command: C:\cygwin\bin\git tag -a -m "CCNet Build 6.2.18.0" project/builds/v6.2.18.0
   at ThoughtWorks.CruiseControl.Core.Sourcecontrol.ProcessSourceControl.Execute(ProcessInfo processInfo)
   at ThoughtWorks.CruiseControl.Core.Sourcecontrol.Git.GitCreateTag(String tagName, String tagMessage, IIntegrationResult result)
   at ThoughtWorks.CruiseControl.Core.Sourcecontrol.Git.LabelSourceControl(IIntegrationResult result)
   at ThoughtWorks.CruiseControl.Core.IntegrationRunner.Build(IIntegrationResult result)
   at ThoughtWorks.CruiseControl.Core.IntegrationRunner.Integrate(IntegrationRequest request)

可能出了什么问题?如果我从命令行执行相同的命令,一切正常。

谢谢!

通过将此添加到 msbuild 项目文件中解决:

<Exec Command='C:\cygwin\bin\git tag -a -m "CCNet Build" project/builds/v$(CCNetLabel)' ContinueOnError="true"/>
<Exec Command='C:\cygwin\bin\git push origin tag project/builds/v$(CCNetLabel)' ContinueOnError="true"/>

【问题讨论】:

    标签: git cygwin cruisecontrol.net


    【解决方案1】:

    这看起来运行 ccnet 服务的用户没有对存储库的写入权限。

    【讨论】:

    • 它有写权限,因为目录是他创建的。所有的文件都被他拉出来检查了。
    • 我不太了解 git 的 cygwin 版本(可能是 / 或 \ 问题)。您可能想尝试在 Windows 上运行良好的 msysgit。我在CCNet开发git源码控制任务的时候也在用这个
    • 我在使用 msysgit 时遇到了另一个问题。它挂在推上。
    • 您是否测试过在同一工作目录和同一用户下运行 ccnet 服务的命令(来自 ccnet 日志的命令)?此错误消息直接来自 git,而不是 ccnet 问题。看起来确实像一些路径分隔符问题或权限问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-14
    • 2021-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-07
    相关资源
    最近更新 更多