2010-03-02 3 views
1

먼저 약간의 배경 ...TFS 2008 : 자동차에 대한 질문은, 라벨 및 일반 버전을 구축

I는 현재 개발 지점을 가지고 우리의 프로젝트에 대한 넘버링 시스템을 버전 관리를 설정하고, 그러나 우리는 지금 첫 번째 배포를 향해 나아갔습니다. 우리는 TFS를 사용하고 있으며 dev 브랜치에서 야간 빌드를 사용합니다.

우리는 아마이 함께 갈거야 방법은 우리가 릴리스에 대한 준비를 할 때 우리가 dev에 떨어져 분기를 취하고 1.x에서 호출이다 이것은 테스트 브랜치가 될 것입니다 : 우리는 그것을 테스트하고 수정 한 다음 (다시 dev에 병합합니다), 테스트를 한 후 더 좋은 결과가 나오면 1.x 브랜치에서 다른 브랜치를 꺼내 1.0으로 만듭니다. 프로덕션 환경에 배포되는 것은이 지점입니다. 프로덕션의 모든 수정 사항은 1.x에 적용되고 테스트 된 다음 새 분기 1.1이 작성됩니다.

내 문제는 1.x에서 가지의 테스트를합니다. 테스트하기 전에 명백한 이유로 분기가 잠길 것입니다. 내 문제는 품질 보증부에서 "버전 번호"에 대해 테스트 라운드를 수행해야하며, 테스트가 실패하면 다음 번 테스트는 새로운 "버전 번호"와 비교됩니다. 우리 개발자는 "버전 번호"를 릴리스에 연결하고 테스트를 통해 해당 버전을 반복 할 수 있기를 원하므로 충돌이 있습니다.

내 첫번째 생각은 코드에 대한 테스트 시점으로 빌드 번호를 사용하는 것입니다. 테스트를 위해 새 버전을 제출할 시간이되면 1.x 분기가 다시 잠기고 빌드가 시작되고 생성되는 VSTS 번호가 "릴리스 조건 1 (v1.0)"이됩니다. 우리는 스프레드 시트에서 수동으로 할 수있는 빌드 ...

에 RC를 매핑 ... 다음 사람이 레이블을 언급하고, 코드가 labled 및 테스트하기 전에 내장 잠긴되어야한다. 필자는 이전에 레이블을 사용 해본 적이 없으며 TFS에 레이블을 만드는 빌드 자체를 읽었습니다.

나는 여기하는 가장 좋은 방법이 무엇인지에 대해 지금 혼란 스러워요. 출시 후보자의 빌드 번호를 충분히 사용하고 있습니까? 수동 레이블링은 여기에 어떤 목적으로도 제공됩니까 (제가 볼 수있는 유일한 이점은 이름과 설명을 제공 할 수 있다는 것입니다). 빌드가 실행될 때마다 TFS에게 레이블을 생성하지 말라고 지시 할 수 있으며 중요한 시점에 우리 자신의 모든 레이블링을 수행합니다 (모든 빌드가 릴리스 후보가 될 수있는 것은 아닙니다). 그렇다면, 각각의 나쁜 아이디어를 쌓은 후에 레이블을 만들지 않는 것입니다. 라벨링은 무엇을 제공합니까?

나는

이 넓은 질문은하지만 ... 내가 changsets이 번호/이름을 구축하고 모두가 서로에 맞게 레이블 위치에 대한 혼란 스러워요 생각의 나는 100 % 확실하지 않다 그 사람 중 하나 무엇을 물어. 어떤 도움을 주셔서 감사합니다.

답변

2

... 누군가가 레이블을 언급하고 코드를 잠그고 테스트를 수행해야합니다. 필자는 이전에 레이블을 사용 해본 적이 없으며 TFS에 레이블을 만드는 빌드 자체를 읽었습니다. 당신이 읽은 내용

올바른 것입니다. TFS를 사용하면 (예 : SourceSafe와 달리) 의 모든 서버 동작은 나중에 알려질 수있는 '알려진 시점'을 구성합니다. Get Specific Version...을 수행하고 Version 드롭 다운을 보면 무슨 뜻인지 알 수 있습니다. TFS 2005에서 볼 수있는 관련 항목은 Changeset, Date, Label입니다. 이제 올바르게 말하면 모든 빌드가 자동으로 레이블을 만듭니다. 이것은 미래의 어떤 시점에서도 주어진 changeset 이후와 똑같이 코드를 검색 할 수 있다는 것을 의미합니다; 어떤 주어진 날짜에; 특정 레이블이 적용될 때, 따라서 빌드가 완료된 시점도 포함됩니다.

결론은 전적으로 자신의 재량에 따라 자신의 레이블을 사용할지 여부를 결정할 수 있다는 것입니다. 주어진 스냅 샷을 검색하는 기능이있을 것입니다. TFS가 각 빌드마다 레이블을 생성하는 것을 막으려 고 제안하지는 않을 것입니다. (이것이 가능할 지 모르겠습니다) - 레이블은 비용이 들지 않습니다.

1

지점 1.x는 많은 증분 작은 발전을 포함하는 통합 branch입니다.
분기 잠금은 답변이 아닙니다.

특히 "품질 보증 테스트"라는 이름의 레이블 (설정

, 그 라벨을 이동할 수 없습니다하기 위해 잠금, 그들은 자신의 작업 공간을 구축하고 정확한 라벨을 검색 할 수 QA 팀을 신호하는 일반적인 방법입니다.
다음 그들은 코드에 대한 자신의 테스트를 시작할 수 있습니다.
Creating a label를 각 빌드는 항상 실용적이지 후가 아닌 모든 빌드가 QA 테스트하는 의미가 있기 때문이다.

+0

"레이블을 이동", 그게 정확히 무엇을 의미 하는가? 나는 레이블이 만들어진 후에 TFS에서 레이블이 "시점"을 구성하지 않고 라벨 코드를 변경할 수 있다는 인상을받습니다.이 경우 레이블을 지정하여 "시점"으로 지정하고 싶습니다. 그게 너 왜 그래야하는거야? 라벨을 잠그고 있습니까? – MrLane

+1

@mrlane : "레이블 이동": 특정 VCS는 레이블을 이동하여 다른 커밋을 참조 할 수있게합니다. TFS에서는 레이블을 편집 할 수 있으므로 (http://stackoverflow.com/questions/545785/how-do-figure-out-which-changeset-a-label-in-tfs-was-applied-to), ** 품질 관리를위한 것이면 편집해서는 안됩니다. 그렇지 않으면 품질 보증팀은 테스트 내용을 확신하지 못합니다 **. 따라서 TFS (실제로는 파일)에서 레이블을 잠글 수는 없지만 내 '레이블 잠금' – VonC

관련 문제