У меня есть центральный репозиторий 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>