3

我正在开发与 CruiseControl.NET 一起使用的构建自动化。在我的 ccnet.config 文件中,我有以下源代码控制标记:

<sourcecontrol type="git">
      <repository>sourceControlAddress</repository>
      <branch>release-0.9.19</branch>
      <autoGetSource>true</autoGetSource>
      <fetchSubmodules>true</fetchSubmodules>
      <executable>C:\Program Files (x86)\Git\cmd\git.exe</executable>
      <tagOnSuccess>false</tagOnSuccess>
      <commitBuildModifications>false</commitBuildModifications>
      <commitUntrackedFiles>false</commitUntrackedFiles>
      <tagCommitMessage>Build {0}</tagCommitMessage>
      <tagNameFormat>Build-{0}</tagNameFormat>
      <committerName>Build</committerName>
      <committerEMail>build@build.com</committerEMail>
      <workingDirectory>d:\GIT\Sources\WEB</workingDirectory>
      <timeout>60000</timeout>
    </sourcecontrol> 

我目前唯一的问题是它“删除”了我拥有的任何结帐信息。例如:如果我在 git 扩展中打开解决方案并检查一个分支然后运行自动构建,如果我再次打开 git 扩展,我将有一个“无分支”而不是我选择的分支。这会导致问题,特别是当我尝试在构建脚本中签入时,因为我收到一条消息说:“目前不在任何分支上。”

如何设置要使用和签出的分支?(分支属性 hsa 是正确的分支名称,并且 autoGetSource 设置为 true)

谢谢!

编辑:我在控制台中运行 CC.net,我得到了他的信息:

[Git] 调用 git checkout -q -f origin/release-0.9.19

结帐被正确调用。但是,由于某种原因,它在运行时被“清除”了。也许是因为

[Git] 调用 git clean -d -f -x

?

4

1 回答 1

1

git 源代码控制提供程序从来没有被设计为与用户“用户”一起工作,然后是它本身。所以它只支持签出远程分支而不创建本地跟踪分支以避免合并冲突。

那么为什么要和 CCNet 在同一个工作目录下工作呢?

于 2013-06-06T21:35:15.663 回答