Cruise Control .net git log无效的修订版本范围

Gil*_*rts 3 git cruisecontrol.net

我设法弄乱了我的Cruise Control项目.

当我移动到新的源代码控制主机时,我正在更新我的持续集成服务器上的项目存储库的Git URL.我有点剪切和粘贴快乐并将存储库的错误URL粘贴到原点.所以下次Cruise Control做了拉动它合并并拉出了很多不应该存放在存储库中的东西.

一旦我意识到我的错误,我认为不是问题,我只会删除有问题的存储库并使用正确的URL进行克隆.

除了Cruise Control似乎已经记住了混乱的存储库中的最后一个更改集,并且当决定是否需要进行新构建时,它会抛出一个混合物.无论如何,这就是我猜的.当它发出git log命令时,它说它无法在已清理的存储库中找到更改集.

它发出的命令是:

git log 66cd57438ea42b4f8cb6dbf033dc1162f61a4d54..origin/master --name-status --pretty=format:"Commit:%H%nTime:%ci%nAuthor:%an%nE-Mail:%ae%nMessage:%s%n%n%b%nChanges:" -m
Run Code Online (Sandbox Code Playgroud)

Git的反应是

Source control operation failed: fatal: Invalid revision range 66cd57438ea42b4f8cb6dbf033dc1162f61d5e65..origin/master
Run Code Online (Sandbox Code Playgroud)

变更集ID肯定不存在于正确的存储库中,但存在于我错误合并的存储库中.

如何让Cruise Control .net忘记duff变更集ID?

Sim*_*ing 7

CruiseControl.net将最后一次提交的id存储在每个项目state文件中.这些通常是驻留在服务器目录中的文本文件(c:\ Program Files(x86)\ CruiseControl.NET\server)

例如,状态文件可以包含:

<IntegrationResult xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" scmError="false">
  <ProjectName>Project1</ProjectName>
  ...
  <Label>1.2.3.4</Label>
  <Parameters>
    ...
    <NameValuePair name="$LastChangeNumber" value="66cd57438ea42b4f8cb6dbf033dc1162f61a4d54" />
  </Parameters>
  <LastSuccessfulIntegrationLabel>1.2.3.4</LastSuccessfulIntegrationLabel>
  <SourceControl name="commit" value="66cd57438ea42b4f8cb6dbf033dc1162f61a4d54" />
</IntegrationResult>
Run Code Online (Sandbox Code Playgroud)

您可以修改此文件以包含与正确的存储库相关的提交ID; 但是你必须先停止CruiseControl.一旦改变了所有服务器/服务并且一切都很好,就重启服务器/服务.

唯一需要改变的是:

  <SourceControl name="commit" value="66cd57438ea42b4f8cb6dbf033dc1162f61a4d54" />
Run Code Online (Sandbox Code Playgroud)

其他属性可以保留原样; 它们只是最后一个版本的属性.