Имам централно hg хранилище с множество подпроекти в него. Донякъде като това:
/Hg_central
/subproject-a
/subproject-b
/...
Опитвам се да настроя сървър cc.net, така че да изгражда подпроект САМО ако директорията му е актуализирана.
Текущият ми проблем е, че след като един от подпроектите бъде актуализиран и изграден, сървърът няма да намери никакви модификации за другите подпроекти, тъй като mercurial е актуализирал цялото хранилище. CC.NET няма да изгражда другите подпроекти, освен ако не е направена друга актуализация. Опитах се да използвам inclusionFilters без успех. Също така не мога да си позволя да имам отделен WorkingDirectory за всеки подпроект. Какво ми липсва, за да направя това възможно?
Моят 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>