使用Mercurial时,CruiseControl.NET的筛选源控制提供程序未检测到修改 [英] CruiseControl.NET's Filtered Source Control Provider Not Detecting Modifications When Using Mercurial
问题描述
我们正在改用Mercurial.我们的存储库中有许多不同的项目,因此我们使用过滤后的源代码管理,以便只有对项目文件的更改才会触发构建.我在ccnet.log中看到CruiseControl正确地从Mercurial获取了修改列表,但始终报告未检测到修改".我想我可能指定了错误或不正确的模式.
We are in the process of switching to Mercurial. Our repository has a number of different projects, so we are using the filtered source control so that only changes to a project’s files trigger a build. I’m seeing in my ccnet.log that CruiseControl is correctly grabbing the modification list from Mercurial, but it always reports "No modifications detected." I think I might be specifying the wrong or an incorrect pattern.
这是我在日志中看到的:
This is what I see in the log:
2010-08-12 18:25:41,305 [BuildAndTools:DEBUG] Modification Modification: (Type=Changeset,FileName=Build/App.targets,FolderName=,ModifiedTime=8/12/2010 6:16:42 PM,UserName=user,ChangeNumber=5640629ec7b5,Version=5640629ec7b5,Comment=Making a change to see if it triggers a build.,Url=,IssueUrl=,EmailAddress=user@example.com) was not accepted by the filter specification.
2010-08-12 18:25:41,305 [BuildAndTools:INFO] No modifications detected.
这是路径过滤配置:
<sourcecontrol type="filtered">
<dynamicValues />
<exclusionFilters />
<inclusionFilters>
<pathFilter>
<caseSensitive>False</caseSensitive>
<pattern>Build\**\*.*</pattern>
</pathFilter>
</inclusionFilters>
</sourcecontrol>
我需要怎么做才能使CruiseControl.NET看到修改?
What do I need to do to get CruiseControl.NET to see a modification?
更新:此问题已在CruiseControl.NET 1.6版中修复.
Update: This issues was fixed in CruiseControl.NET version 1.6.
推荐答案
事实证明,这是Mercurial源代码管理插件中的错误.它通过更改集而不是文件来获取更改(更改集中的所有文件都被分组到一个用空格分隔的列表中).这不是过滤后的源代码控制提供程序可以使用的格式,因此它永远不会注意到任何修改.
It turns out this is a bug in the Mercurial source control plug-in. It gets changes by changeset, instead of by file (all the files in a changeset are grouped together into a space separated list). This is not the format the filtered source control provider works, so it never notices any modifications.
我已解决此问题,并创建了 JIRA项目来跟踪该问题 ,并附上我的代码更改.
I fixed the issue, created a JIRA item to track the issue, and attached my code changes to it.
这篇关于使用Mercurial时,CruiseControl.NET的筛选源控制提供程序未检测到修改的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!