Qual é o propósito de um shelveset?

Eu tenho usado TFS por um tempo agora, mas como um desenvolvedor solitário Eu Não tenho realmente usado suas características em toda a sua extensão. Agora fui encarregado de trabalhar com alguns colegas no exterior e vamos usar uma versão compartilhada do TFS. Um dos seus processos está a ser arquivado, mas não tenho a certeza de como usá-lo. Decidi fazer uma peça, mas não sei o que fazer depois de criar um conjunto de prateleiras. O meu processo foi o seguinte:

abri um projecto existente da TFS que estava totalmente entrou e fez uma simples mudança para um dos arquivos. Então criei um conjunto de prateleiras. Depois fechei o projecto e reabri-o do controle de origem. Notei que a mudança que eu tinha feito não foi aplicada, o que estava correto no entanto o arquivo ainda foi verificado para mim. É nesta altura que a minha confusão começa. Se eu criar um conjunto de shelve é suposto eu fazer um Desfazer mudanças pendentes de modo que os arquivos originais são checados de volta em TFS para que meus colegas possam usá-los ou criar uma compilação a partir deles.

Im a um pouco confuso no processo.

 10
Author: Daniel Mann, 2014-01-24

3 answers

De uma perspectiva de processo (numa loja ágil), o principal uso é garantir que o seu código constrói com o código existente sem quebrar a compilação sobre o seu ramo de integração para o resto da sua equipa. Os itens mencionados acima irão ajudá-lo a realizar esta tarefa.

Em resumo: nunca verifique nada se não for construído correctamente. Guarde o seu código para garantir que ele funciona e não quebre a compilação antes de verificá-lo. Se você quebrar a construção para a sua equipe, a sua noite constrói (se você os tem) não funcionará, então seus testadores não terão a nova base de código para trabalhar. Nota: O teu código pode estar avariado no início, mas não faz mal, só não quebres a compilação. Se o seu código não estiver maduro o suficiente para ser testado (quebra alguma coisa ou talvez todo o aplicativo), certifique-se de que o seu código está inativo na aplicação. Existem muitos truques para fazer isso simplesmente comentando o código para fora para que você possa checá-lo para adicionar uma exceção de algum tipo para evitar que o código de execução a menos que tenha definido uma variável durante a sua depuração. Tenho a certeza que há milhões de outras coisas que também podes fazer.
 3
Author: Kelly Davis, 2016-11-07 09:20:28

Segundo a minha experiência, os abrigos são normalmente utilizados para 3 fins:

  1. Mudar de tarefas antes de estar pronto para fazer o Check-In
  2. Obter ajuda de colegas em código que não está a funcionar.
  3. Revisão De Códigos

Quando criar um shelveset, tem uma opção para escolher se deseja desfazer as suas alterações pendentes ao mesmo tempo ou não.

Para o número 1, Eu gostaria de assinalar a caixa para desfazer as minhas alterações, como todo o propósito de arquivar é obter um local limpo espaço de trabalho para iniciar a nova tarefa.

Para #2, eu provavelmente não iria desfazer as minhas mudanças, como depois que o colega olhou para o meu código e me ajudou eu vou querer continuar trabalhando nessas mudanças.

Para o # 3 Isto só é aplicável se o fluxo de trabalho de revisão de código for pré-checkin, nesse caso você normalmente anularia as suas alterações pendentes para que você possa começar a trabalhar no próximo item enquanto espera pela revisão e não coming as alterações.

 17
Author: Dylan Smith, 2014-01-24 19:50:47

Apenas para referência, esta ligação MSDN fornece a utilização de 'shelvesets' como:

  • interrupção : tem alterações pendentes que não estão prontas para verificação entra, mas tens de trabalhar numa tarefa diferente.
  • colaboração : você tem mudanças pendentes que não estão prontas para o check-in, mas você precisa compartilhá-las com outro membro da equipe.
  • revisão de Código : queres que outro membro da equipa faça uma revisão de código da tua espera alteracao.
  • private Build : antes de verificar as suas alterações, pode utilizar o seu sistema de compilação automatizado para compilar e testar o seu código.
  • cópia de segurança : tem um trabalho em progresso que não consegue terminar agora, por isso quer uma cópia de segurança que está armazenada no seu servidor e disponível para outros membros da equipa que possam precisar de aceder a ela.
  • Tens trabalho em curso que queres entregar a outro membro da equipa.
 2
Author: rageit, 2016-01-11 14:08:38