2009-06-05 5 views
0

우리는 SVN 저장소를 재구성하고 프로젝트가 의존하는 어셈블리를 트렁크 아래에 포함하는 lib 폴더를 포함하려고합니다.SVN 저장소 구조 및 공유 어셈블리

여러분이 공유 어셈블리를 어떻게 다루고 있는지 알고 싶습니다. 다른 trunk lib 폴더에 걸쳐있는 사본이 여러 개 있습니까? 어셈블리가 빌드 될 때 lib 폴더를 자동으로 업데이트하는 빌드 프로세스가 있습니까?

어떻게 지내세요?

감사합니다.

답변

1

우리의 모든 핵심 라이브러리를 버전 화합니다.

그래서 예를 들어, SVN은 다음과 같습니다

/REPO/LIB1/트렁크/

/repo/lib1/tags/1.0

/repo/lib1/tags/1.1

/REPO/LIB1/지점

...

이렇게하면 BC가 깨지거나 또는 무언가가 인 상황을 피할 수 있으며 라이브러리를 사용하는 다른 세 프로젝트에 대한 업데이트가 필요합니다.

더 많은 정보를 얻으려면 svn:externals부터 까지 이러한 라이브러리를 프로젝트에 추가하십시오.

:

는 /repo/project1/tags/1.0

/라이브러리

/REPO/프로젝트 1/트렁크 ...

svn propedit svn:externals /repo/project1/trunk/library 

는 다음을 입력

lib1 svn : //host/repo/lib1/tags/1.1

... 변경 사항을 적용하십시오.

Project1 자체는 규칙 (릴리스 용 태그 등)을 따릅니다.

원하는 언어에 따라 물론 다른 옵션이 있습니다. 자세히 설명해 주시면 제가 답변을 연장 할 수 있는지 알 수 있습니다. 그러나 무엇보다도, 그것만큼이나 간단합니다. 다른 빌드 도구가 필요하지 않습니다.

우리는 모든 배포를 직접 서브 버전에서 수행합니다 (capistrano 통해). 기본적으로 입니다. 태그를 체크 아웃하고 완료되었습니다. 심지어 고온 고정이 가능합니다. 당신이 나를 허용하는 경우 포주 내 자신의 blog - 나는이 주제 ("svn에서 배포")에 광범위하게 작성했습니다.

HTH!

1

동일한 라이브러리를 공유하는 다른 저장소의 경우 동일한 코드를 공유하도록 libs를 호스팅하는 저장소에 대한 외부 참조를 사용합니다. 동일한 저장소 내에 컴파일 할 라이브러리가 필요한 여러 프로젝트가있는 경우 빌드 프로세스는 필요에 따라 최상위 수준의 libs 폴더에서 각 프로젝트 하위 폴더로 복사합니다.