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.
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.Segundo a minha experiência, os abrigos são normalmente utilizados para 3 fins:
- Mudar de tarefas antes de estar pronto para fazer o Check-In Obter ajuda de colegas em código que não está a funcionar.
- 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.
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.