如何让ccnet在一个mercurial repo中独立更新多个项目?

时间:2011-04-29 16:02:01

标签: mercurial cruisecontrol.net

我有一个中央hg存储库,里面有多个子项目。有点像这样:

/Hg_central
    /subproject-a
    /subproject-b
    /...

我正在尝试设置一个cc.net服务器,以便仅在其目录更新时才构建子项目。

我当前的问题是,一旦其中一个子项目被更新和构建,服务器将找不到其他子项目的任何修改,因为mercurial已更新整个存储库。除非已完成另一个更新,否则CC.NET不会构建其他子项目。我尝试过使用inclusFilters但没有成功。我也无法为每个子项目分配一个单独的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>

1 个答案:

答案 0 :(得分:0)

使用svn这就像一个魅力,所以我有点惊讶mercurial不是。

无论哪种方式,一种可能的解决方法是定义一个项目,其目的是更新源,而所有其他项目应该具有该项目的Project trigger

HTH