3
我有一箇中央hg存儲庫,裏面有多個子項目。有點像這樣:如何使ccnet在單個mercurial repo中獨立更新多個項目?
/Hg_central
/subproject-a
/subproject-b
/...
我想建立一個cc.net服務器,以便它只在其目錄已更新時才構建一個子項目。
我目前的問題是一旦子項目之一被更新和構建,服務器將不會找到任何其他子項目的修改,因爲mercurial更新了整個存儲庫。 CC.NET不會構建其他子項目,除非另有更新。我試過使用包含過濾器沒有成功。我也無法爲每個子項目分配一個單獨的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>
與善變的問題是唯一的,你必須一次更新整個回購無法更新的子目錄下,那麼CC.NET似乎並不正確地處理這個問題。 試過你的解決方案,似乎工作正常! 非常感謝! – TwoMasters 2011-06-06 15:39:18