2012-03-06 3 views
1

빌드를 요청하는 사용자가 제공 한 변경 집합의 일부 파일을 변경하는 gated checkin 빌드가 있습니다. 빌드는 주로 모든 대상의 소스 파일에서 빌드 버전 번호를 설정합니다.병합 충돌이있는 TFS 2010 Checkin Shelveset

gated checkin 활동은 사용자의 쉘셋을 체크인합니다. 이제 사용자 shelvset의 파일 부분과 충돌 할 수있는 빌드로 변경된 파일을 체크인하고 싶습니다. 병합 충돌이 발생합니다.

Use VersionControlServer.CheckinShelveset은 이전 shelveset의 다른 체크 인으로 인해 병합 충돌시 체크인을 강제로 수행 할 수있는 옵션이 없습니다. 사용자가 제공 한 선반 세트를 변경하려고했지만 동일한 사용자가 만들지 않은 선반 세트를 변경할 수는 없습니다. 따라서 두 번째 shelveset을 만들고 빌드 컨트롤에있는 게이트 체크인 활동이 성공할 때까지 기다려야합니다.

변경 사항을 해결할 수 있지만 빌드 컨트롤러에 작업 공간이 없습니다 (빌드 에이전트에 있음). 따라서 새 작업 공간을 만들고 다른 사용자의 선반 세트를 빼고 시도해야합니다. 내 다른 shelveset을이 하나에 병합 한 다음 어느 것이 쉽지 않고 더 심각하게 시간이 걸릴지를 확인하려고합니다.

TFS가 선반 셋트를 체크인하고 작업 영역을 갖지 않고 최신 버전을 덮어 쓰도록하는 방법이 있습니까? 아니면 병합 충돌없이 체크인 한 빌드를 변경하는 다른 방법이 있습니까? 내가 이전에 빌드 에이전트를 점검한다면, 게이팅 된 checin은 빌드 컨트롤러에서 병합 충돌로 실패 할 것입니다.

답변

3

코드를 컨트롤러가 아닌 빌드 에이전트에서 실행하면 작업 영역에 액세스 할 수 있습니다. 이 경우 두 가지 체크인을 고려해야합니다. 첫 번째는 사용자의 변경 사항이고 두 번째는 코드 수정 사항입니다. 또는 코드를 변경 한 다음 빌드 에이전트의 작업 영역에서 체크인을 수행하면됩니다. 이 경우 사용자가 제출 한 선반 셋트는 체크인에 사용되지 않고 코드를 변경하기위한 기초로 사용됩니다.

에도 불구하고 체크 박스를 체크 인 할 수는 없습니다. 갈등.

+0

즉, Gated Checkin 활동을 사용할 수는 없지만 직접 체크 인을 수행 할 수는 있습니다. 또한 선택된 요소에 빌드 레이블을 붙여야합니다. Gated checkin 활동 대신 내 자신을 체크인하는 경우 다른 것을 풀어 줍니까? 나는 어떤 체크 인을하기 전에 BuildStatus를 점검 할 필요가 있다고 생각한다. –

+0

모든 변경 사항을 병합하고 gated 프로세스에서 변경 사항을 체크 한 경우, 변경된 사람의 기록을 잃게됩니다 (변경 세트 주석을 넣을 수도 있음). 예, 테스트를 성공적으로 작성하고 실행했는지 확인해야합니다. –