2009-10-13 2 views
20

TeamCity를 설정 중이며 VCS 루트로 사용해야하는 것이 궁금합니다.TeamCity의 VCS 루트는 어디에서 지정해야합니까?

내 SVN 저장소는 http://obfuscatedserver/svn/main/MyProject1/

내가 http://obfuscatedserver/svn/main/MyProject1/에서 VCS 루트를 설정하거나 http://obfuscatedserver/svn/main/MyProject1/trunk/에서 트렁크 폴더를 사용해야에 위치하고?

지금은 이 아니고은 트렁크 폴더를 사용하고 있으며 빌드 러너 "빌드 파일 경로"설정을 "trunk/MyProject1.proj"(msbuild 사용)로 설정해야했습니다.

어느 위치가 적절한 위치입니까?

답변

24

http://obfuscatedserver/svn/main/을 VCS 루트로 사용하고 체크 아웃 규칙을 사용하여 체크 아웃 된 폴더를 제한하는 것이 좋습니다. 당신은 아마 또한

MyProject1/trunk/MyProject1.proj 

에 MSBuild에서 파일의 위치를 ​​업데이트하고 작업을 설정해야합니다

+:/MyProject1/trunk 

:

는 다음과 같은 체크 아웃 규칙 (빌드 설정의 섹션 2)를 추가 디렉토리로

MyProject1/trunk 

이 작업은 많은 것처럼 보이지만 다음에 원하는 작업은 다음과 같습니다. 새 빌드를 추가하면 새 VCS 루트를 만들 필요가 없습니다.

그러나 TeamCity가 SVN repo를 폴링 할 때 실질적인 이점이 있습니다. repo를 한 번 폴링하면 모든 빌드의 모든 변경 사항을 발견 할 수 있습니다. 저장소가 sourceforge 또는 googlecode와 같은 곳에서 호스팅되는 경우 특히 중요합니다. 구성한 모든 빌드에 대해 서버를 폴링하고 싶지는 않습니다.

또한 리포가 제 3 자에 의해 호스팅되는 경우 vcsRoot의 점검 간격을 한 시간에 한 번 또는 그와 비슷한 것으로 설정할 수 있습니다. 시간 초과를 기다리지 않으면 모든 빌드 개요 페이지의 작업 메뉴에서 보류중인 변경 사항을 확인하도록 teamcity에 요청할 수 있습니다.

+0

CI 서버 배포에 약간의 시간을 쏟아야했지만, 일단 끝내면 제안을 시도 할 것입니다. –

+4

'+ :/MyProject1/trunk => .'처럼 체크 아웃 규칙에서 대상을 다시 매핑 할 수 있습니다. 이것은 트렁크의 내용을 빌드의 루트 폴더로 체크 아웃하므로 msbuild 파일의 위치는 단지 'MyProject1.proj'입니다. 또한 작업 디렉토리를 비워 둘 수 있습니다. – timomeinen

2

체크 아웃 속도를 높이려면 .../trunk /를 사용해야합니다. 그렇지 않으면 TeamCity에서 빌드가 필요하지 않은 모든 분기를 가져옵니다.

+1

체크 아웃 규칙을 수정하여 분기, 태그 등의 문제를 해결할 수 있습니다. – dthrasher

2

현재까지 저는 ../trunk를 루트로 사용했습니다. 내 프로젝트의 경우 모든 프로젝트가 트렁크 아래에 위치하므로 완벽한 체크 아웃을 쉽게 수행 할 수 있기 때문에 이점이 좋습니다.

그러나 "trunk => tags"와 같은 규칙과이 디렉토리의 부모 인 루트를 사용해야하므로 레이블 지정 기능이 작동하지 않습니다. 모든 릴리즈 빌드에 라벨을 붙이고 싶기 때문에 CrazyCoder가 제안한 것과 비슷한 레이아웃으로 변경하는 것에 대해 생각합니다.

관련 문제