У меня есть центральный репозиторий hg с несколькими подпроектами. Примерно так:
/Hg_central
/subproject-a
/subproject-b
/...
Я пытаюсь настроить сервер cc.net так, чтобы он создавал подпроект ТОЛЬКО в том случае, если его каталог был обновлен.
Моя текущая проблема заключается в том, что после обновления и сборки одного из подпроектов сервер не найдет никаких изменений для других подпроектов, поскольку mercurial обновил весь репозиторий. CC.NET не будет создавать другие подпроекты, если не будет выполнено другое обновление. Я безуспешно пытался использовать includeFilters. Я также не могу позволить себе иметь отдельный рабочий каталог для каждого подпроекта. Чего мне не хватает, чтобы сделать это возможным?
Мой файл конфигурации ccnet в настоящее время выглядит следующим образом:
<cruisecontrol xmlns:cb="urn:ccnet.config.builder">
<project name="subproject-a">
<workingDirectory>G:\Hg-clone\</workingDirectory>
<triggers>
<intervalTrigger name="continuous" seconds="60" buildCondition="IfModificationExists" initialSeconds="20" />
</triggers>
<sourcecontrol type="filtered">
<inclusionFilters>
<pathFilter>
<pattern>/subproject-a/**/*</pattern>
</pathFilter>
</inclusionFilters>
<sourceControlProvider type="hg" autoGetSource="true" >
<repo>http://myserver/myproject</repo>
<multipleHeadsFail>false</multipleHeadsFail>
</sourceControlProvider>
</sourcecontrol>
<tasks>
<exec>
<executable>mybuild.bat</executable>
</exec>
</tasks>
</project>
<project name="subproject-b">
<workingDirectory>G:\Hg-clone\</workingDirectory>
<triggers>
<intervalTrigger name="continuous" seconds="60" buildCondition="IfModificationExists" initialSeconds="20" />
</triggers>
<sourcecontrol type="filtered">
<inclusionFilters>
<pathFilter>
<pattern>/subproject-b/**/*</pattern>
</pathFilter>
</inclusionFilters>
<sourceControlProvider type="hg" autoGetSource="true" >
<repo>http://myserver/myproject</repo>
<multipleHeadsFail>false</multipleHeadsFail>
</sourceControlProvider>
</sourcecontrol>
<tasks>
<exec>
<executable>mybuild.bat</executable>
</exec>
</tasks>
</project>
</cruisecontrol>