views:

53

answers:

1

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=,[email protected]) was not accepted by the filter specification.
2010-08-12 18:25:41,305 [BuildAndTools:INFO] No modifications detected.

And this is the path filtering configuration:

<sourcecontrol type="filtered">
  <dynamicValues />
  <exclusionFilters />
  <inclusionFilters>
    <pathFilter>
      <caseSensitive>False</caseSensitive>
      <pattern>Build\**\*.*</pattern>
    </pathFilter>
  </inclusionFilters>
</sourcecontrol>

What do I need to do to get CruiseControl.NET to see a modification?

+2  A: 

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, created a JIRA item to track the issue, and attached my code changes to it.

splattered bits