문제

CVS에는 여러 디렉터리가 있는 프로젝트가 있습니다.야간 빌드를 빌드하기 위해 동일한 CVS 프로젝트의 다른 디렉토리에서 항목을 가져와야 하는 야간 빌드가 있습니다.따라서 이를 염두에 두어야 하며 SVN으로 이동하는 경우 다른 저장소에서 항목을 확인하도록 빌드 스크립트를 수정해야 합니다.

관련 SVN QA를 읽었지만 답변이 필요한 나만의 질문이 있습니다.
내가 할 수있는:

/trunk
/tags
/branches
/3rdparty

우리가 개발하는 모든 것은 /trunk에서 나오고 우리가 변경하지 않는 모든 타사는 /3rdparty로 이동합니다.

좋습니다. 이제 야간 빌드 스크립트는 트렁크에 태그를 지정하고, 태그를 체크아웃하고, 적절한 디렉토리에 필요한 타사 항목을 체크아웃한 다음 빌드 프로세스를 시작해야 합니다.
빌드 결과(컴파일된 항목)는 일정 기간 동안 NFS 마운트에 유지될 수 있으므로 통합 팀은 2주 전으로 돌아가 문제를 재현할 수 있습니다.

내 기반이 모두 보장되나요?

도움이 되었습니까?

해결책

SVN 레드 북 여기 다양한 프로젝트 유형에 대한 레이아웃에 대한 많은 정보와 관리 방법을 포함합니다.

후크/트리거/외부를 사용하여 '제 3 자'라는 독립적 인 저장소에서 데이터를 가져 오려고 할 수도 있습니다. 따라서 개발자가 하나의 레포를 확인하면 세 번째 부분도 얻습니다. 우려 사항을 분리하는 방법에는 수많은 방법이 있지만 구성 요소로부터 통일 된 repo를 제시합니다.

행운을 빕니다

다른 팁

다음과 같은 빌드 엔진을 사용하는 것이 가치가 있을 수 있습니다. 허드슨 강 아니면 크루즈 컨트롤.작업 흐름은 약간 다릅니다. 태그는 빌드 후에 만들어지지만 이를 제어할 수 있는 추가 모듈을 얻을 수 있습니다.요점은 모든 개발 작업이 자동으로 완료되고 야간 빌드를 위한 적절한 프레임워크가 제공되며 모든 것을 제어하고 모니터링할 수 있는 멋진 웹 인터페이스가 제공된다는 것입니다.

개인적으로 저는 적절한 타사 라이브러리를 적절한 위치로 가져오기 위해 트렁크에 몇 가지 외부 정의를 넣었습니다.이렇게 하면 타사 라이브러리 버전을 변경할 때 트렁크를 변경하고 빌드 스크립트를 수정할 필요가 없습니다.이는 또한 적절한 트렁크/태그/브랜치를 확인하기만 하면 이전 버전을 구축할 수 있음을 의미합니다.주의하세요 - 그냥 트렁크에 싣고 흩어놓으면 살인으로 이어질 수 있습니다.

나는 또한 다음과 같이 저장소를 계층화할 것입니다.

project
 /trunk
 /branches
 /tags
3rdparty

이는 어느 시점에서 더 많은 최상위 프로젝트를 추가할 수 있는 더 많은 범위를 제공하기 때문입니다.이렇게 하면 여러 프로젝트를 완전히 독립적으로 관리할 수 있으며 종속성이 있는 경우 외부를 사용하여 올바른 버전을 참조할 수 있습니다. 이렇게 하면 종속 프로젝트를 자동으로 중단/변경하는 한 프로젝트의 변경 사항을 효과적으로 중지할 수 있습니다.

별도의 저장소를 사용하여 이 작업을 수행하는 것도 가능합니다. 괜찮지만, 이 경우 처음부터 별도의 제3자 섹션을 별도의 저장소에 배치했습니다.

타사 파티를 트렁크로 옮기지 않는 이유는 무엇입니까? 분기마다 제 3 자의 사본이 지점으로 들어갑니다. 그리고 분명히 당신의 지점은 기존 제 3 자 물건을 기반으로 코딩했기 때문에 Branche에서 타사 물건을 바꾸지 않을 것입니다.

나는 당신이 말하는 것을 태그하는 것에 대해 확실하지 않습니다. 그게 당신이 의미하는 버전 번호인가요? 버전 번호 인 경우 스크립트를 통해 해당 스크립트를 통과하고 빌드에 레이블을 지정하십시오.

"다중 디렉토리"가 독립적으로 버전으로 원하는 별도의 구성 요소 인 경우, 개별적으로 태그를 지정할 수 있도록 각각 자체 저장소에 있어야합니다. 그러나 이것이 모두 단일 자체 포함 프로젝트라면 (예 : 일반적으로 모든 구성 요소를 태그하고 분기하는 경우) 모든 코드를 동일한 저장소에 넣을 수 있습니다.

사용을 고려해야합니다 외관 타사 유물을 위해.

내 스크립트는 트렁크를 확인하고 파일을 수정합니다 (어셈블리 인fo.cs 파일에서 버전 번호를 조정). 어떤 식 으로든 파일을 수정할 필요가 없다면 먼저 태그가 좋을 것입니다.

그 외에, 당신의 설정은 적어도 나에게 좋은 것 같습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top