2008-10-22 4 views
2

TFS에 레이블을 만들어 여러 파일에 할당 한 경우 동료가 해당 레이블에 파일 버전을 변경하거나 다른 파일을 추가 할 수 없습니다. 우리는이 오류를 얻을 : 나는 수도로TFS에서 라벨 공유하기?

It is possible that a user could be allowed to manipulate a shared label in the development folder but only manipulate labels that they own in a production folder. (emphasis mine)

보십시오, 나는에 "공유 라벨"모든 참조를 찾을 수 없습니다 :

TF14077: The owner of a label cannot be changed. 

문제를 검토 한 결과를, 내가 어떤 상태, this article을 발견했다. 지금까지 볼 수 있듯이 레이블에는 소유자가 있어야합니다.

FWIW, 내가하려는 것은 개발자가 코드가 특정 레이블로 태그를 지정하여 빌드의 일부가 될 준비가되었음을 나타낼 수 있도록 "플로팅"레이블을 사용하는 것입니다. 그런 다음 빌드 프로세스는 해당 레이블이있는 모든 항목을 가져 와서 빌드 할 준비가 된 최신 항목을 자동으로 가져 와서 이전 버전과 중요한 시간을 준비하지 않은 최신 항목을 모두 무시합니다.


업데이트 : 내가 진정으로 공유 라벨을 만들 수없는 경우에, 나는 적어도 사용자에게 자신의 동료가 만든 레이블을 편집 할 수있는 권리를 줄 수있는 그림 . 이것은 꽤 명시 적으로 지원됩니다. 정기 기여자 사용자는이 권리를 가지고 있지만, MSDN에 따르면,이 LabelOther 허가의 방법으로 부여 할 수 있습니다 (소스 제어 권한 아래 기사 은 Team Foundation Server 권한 참조)하지 않습니다

Administer labels | tf: LabelOther | Users who have this permission can edit or delete labels created by another user.

Source control permissions are specific to source code files and folders. You can set these permissions by right-clicking the folder or file in Source Control Explorer, clicking Properties, and on the Security tab, selecting the user or group for which you want to change permissions, and then editing the permissions listed in Permissions. You can set these permissions by using the tf command-line utility for source control.

는 ... 그래서 할당 한 그 권리 위의 제안, 모든 개발자가 들어있는 도메인 그룹.
=============================================================================== 
Server item: $/Test1/TeamBuildTypes (Inherit: Yes) 
    Identity: CORP\Web Team 
    Allow: 
    Deny: 
    Allow (Inherited): Label, LabelOther 
    Deny (Inherited): 

아직 내 테스트 사용자가 아직

tf permission /group:"CORP\Web Team" 

예상대로 결과는 (나는 또한 그냥 재미, 라벨을 할당)입니다 : 나는 그것이 TF 권한을 명령을 사용하여 설정되었는지 확인할 수 있습니다 내가 만든 라벨을 편집 할 수 없습니다.

답변

0

레이블로이 작업을 할 수 없었습니다. 대신 분기를 사용하여 완전히 다른 프로세스를 고안했습니다. 이제이 작업을 읽는 모든 사람에게 강력하게 권장합니다.

우리는 일반적인 개발 분기가 있도록 분기 체계를 설정했습니다. 그것으로부터, 각 개발자는 그들이 원하는 것을 할 수있는 그/그녀 자신의 가지를 가지고 있고, 생산 지사가 있습니다.

  • 개발자는 실수로 물건을 방출하거나 동료와의 간섭을 두려워하지 않고 사설 지사에서 "더러운"작업을 수행합니다.
  • 통합 준비가 완료되면 변경 사항을 개발 분기에 병합합니다. 우리는 계속해서 거기에서 빌드를 수행하고 결과를 테스트합니다.
  • 통합 빌드를 완전히 테스트하고 배포 할 준비가되면 변경 내용이 프로덕션 분기에 병합됩니다. 이것은 구축 및 배포됩니다.

나는

what I'm trying to do is employ a "floating" label so that developers can indicate that their code is ready to become part of the build by tagging it with a particular label.

내가 위에서 설명한 기법 이것을 완전히 달성 등을 원한다고했다.

1

쉘브 세트가 현재하고있는 일을 처리하는 데있어 더 나은 해결책이 될 수 있을까요? IIRC에는 빌드 (또는 기타) 프로세스의 일부로 쉘브 세트를 사용하는 등 상당히 풍부한 API가 있습니다.

TFS의 라벨을 사용했을 때 매우 제한적이라는 것을 알았습니다.

+0

내가하고있는 일 LabelGourcing을 통해 SourceGear의 Vault 제품에서 할 수 있었지만 TFS에서 해당 기능을 복제 할 수 없어서 선반 세트로 바뀌 었습니다. – cfeduke

+0

네, Vault, VSS 및 기타에서이 작업을 수행했습니다. 여기 없어요. –

+0

Shelve 세트는 우리가 지금 사용하고있는 것으로, 개발자는 준비가 될 때까지 메인 라인 저장소에서 변경 사항을 유지할 수 있습니다. 그러나 상호 연관된 작업을하는 개발자가 여러 명일 경우 이러한 방식으로 업데이트를 공유하기가 어려워집니다. –