Pergunta

Se eu criei um rótulo no TFS, atribuindo-o a vários arquivos, meus colegas de trabalho não pode mudar as versões dos arquivos (nem adicionar outros arquivos) para esse rótulo. Nós obter este erro:

TF14077: The owner of a label cannot be changed. 

Pesquisando o problema, eu encontrei este artigo , que afirma:

É possível que um usuário poderia ser autorizados a manipular uma etiqueta compartilhada na pasta de desenvolvimento, mas apenas manipular os rótulos que eles próprios em um pasta de produção. (Grifo meu)

Por mais que tentasse, eu não consigo encontrar qualquer referência a "rótulos compartilhados". Tanto quanto eu posso ver, a etiqueta deve ter um dono.

FWIW, o que estou tentando fazer é empregar um "flutuante" etiqueta para que os desenvolvedores podem indicar que seu código está pronto para se tornar parte da compilação por marcação com um rótulo específico. Em seguida, o processo de construção só precisa ter tudo ter esse rótulo, e automaticamente obter o material mais recente que é realmente pronto para ser construído, ignorando as duas versões anteriores, bem como o material mais recente que não está pronto para o horário nobre.


Atualização: Figura I se eu não posso fazer uma etiqueta verdadeiramente compartilhada, posso pelo menos dar aos usuários o direito de editar rótulos criados por seus colegas de trabalho. Isto é suportado muito explicitamente. Regular Contribuinte os usuários não têm este direito, mas de acordo com MSDN (veja o artigo Team permissões do servidor Foundation , em Fonte permissões de controle ), ele pode ser concedido por meio do LabelOther permissão:

permissões de controle de origem são específico para arquivos de código fonte e pastas. Você pode definir essas permissões clicando com o botão direito na pasta ou arquivo em Source Control Explorer, clique Propriedades e, na guia Segurança, seleccionando o utilizador ou grupo para o qual que pretende alterar permissões e em seguida, a edição das permissões listadas em Permissões. Você pode definir essas permissões usando o tf utilitário de linha de comando para a fonte controle.

...

Administrar etiquetas | tf: LabelOther | Os usuários que têm essa permissão podem editar ou rótulos de exclusão criadas por outro usuário.

Então eu atribuído esse direito ao grupo de domínio que contém todos os desenvolvedores, como sugerido acima. Posso verificar se ele é definido usando o permissão tf comando:

tf permission /group:"CORP\Web Team"

e o resultado é como esperado (Eu também atribuído Etiqueta, apenas por diversão)

===============================================================================
Server item: $/Test1/TeamBuildTypes (Inherit: Yes)
  Identity: CORP\Web Team
    Allow:
    Deny:
    Allow (Inherited): Label, LabelOther
    Deny (Inherited):

No entanto, o meu usuário de teste ainda não está sendo permissão para editar um rótulo que eu criei.

Foi útil?

Solução 2

Eu nunca fui capaz de fazer este trabalho com rótulos. Em vez disso, eu inventei um processo totalmente diferente usando ramificação, que agora eu recomendo vivamente a quem lê este.

Montamos um esquema de ramificação para que haja um ramo geral de desenvolvimento; a partir disso, cada desenvolvedor tem seu / sua própria sucursal com a qual eles podem fazer o que querem, e há um ramo de Produção.

  • Os desenvolvedores fazem o seu trabalho "sujo" em seu ramo privado, sem medo de acidentalmente lançando coisas, ou mesmo interferir com os seus colegas de trabalho.
  • Quando eles têm algo pronto para integrar eles se fundem as alterações no ramo de desenvolvimento. Fazemos contínua constrói lá, e testar os resultados.
  • Quando uma compilação integrada totalmente testado e pronto para implantação, as alterações são mescladas ao ramo de produção. Este é construído e implantado.

Eu tinha dito que queria

o que estou tentando fazer é empregar um "Flutuante" etiqueta para que os desenvolvedores pode indicar que seu código está pronto para se tornar parte da compilação por marcação -lo com um rótulo específico.

O esquema que I descrito acima alcança completamente este, e mais.

Outras dicas

Would conjuntos Shelve ser uma solução melhor para o que você está fazendo? IIRC há uma API bastante rico para trabalhar com conjuntos Shelve como cometê-los como parte de uma compilação (ou outro) processo.

Eu encontrei rótulos em TFS a ser muito limitado quando eu usei.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top