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.
I fixed the issue locally, and have created a [JIRA item to track the issue](http://jira.public.thoughtworks.org/browse/CCNET-1947). My code changes are attached. I've also created a question about this [on Stack Overflow](http://stackoverflow.com/questions/3498425/cruisecontrol-nets-filtered-source-control-provider-not-detecting-modifications). <:> Aaron From: [email protected] [mailto:[email protected]] On Behalf Of Jensen, Aaron Sent: Thursday, August 12, 2010 6:42 PM To: [email protected] Subject: [ccnet-user] Mercurial Not Detecting Modifications When Using Filtered Source Control 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=ajensen,ChangeNumber=5640629ec7b5,Version=5640629ec7b5,Comment=Making a change to see if it triggers a build.,Url=,IssueUrl=,[email protected]) was not accepted by the filter specification. 2010-08-12 18:25:41,305 [2010C-Dev-BuildAndTools:INFO] No modifications detected. And this is what the configuration for this process looks like: <sourcecontrol type="filtered"> <dynamicValues /> <exclusionFilters /> <inclusionFilters> <pathFilter> <caseSensitive>False</caseSensitive> <pattern>Build\**\*.*</pattern> </pathFilter> </inclusionFilters> I would think the build would trigger based on the first pathFilter's pattern element, but it doesn't. Are my patterns wrong? Is CruiseControl not working correctly? <:> Aaron
