여러 개의 하위 프로젝트가있는 중앙 hg 리포지토리가 있습니다. 다소 이런 : 나는 그것의 디렉토리가 업데이트 된 경우에만 하위 프로젝트를 빌드하도록 cc.net 서버를 설정하려고단일 수은 리포에서 ccnet 여러 프로젝트를 독립적으로 업데이트하는 방법은 무엇입니까?
/Hg_central
/subproject-a
/subproject-b
/...
.
현재 문제는 하위 프로젝트 중 하나가 업데이트되고 빌드 된 후, mercurial이 전체 저장소를 업데이트했기 때문에 서버가 다른 하위 프로젝트에 대한 수정 사항을 찾지 못합니다. CC.NET은 다른 업데이트가 완료되지 않는 한 다른 하위 프로젝트를 빌드하지 않습니다. 나는 성공적으로 inclusionFilters를 사용해 보았습니다. 또한 각 하위 프로젝트마다 별도의 WorkingDirectory를 가질 여유가 없습니다. 이것을 가능하게하기 위해 무엇을 놓치고 있습니까?
내 ccnet 설정 파일은 다음과 같이 현재 : SVN으로
<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>
수은의 문제는, 당신이 한 번에 전체의 repo를 업데이트해야 CC.NET을 올바르게 처리하지 않는 것 있도록 하위 폴더를 업데이트 할 수 있습니다. 해결책을 시도했지만 문제가없는 것 같습니다. 감사합니다. – TwoMasters