Pergunta

Meu último empregador tinha desenvolvido um elaborado sistema que se sentou em cima do SVN para lidar com o desenvolvimento em curso: ( gestão da mudança ) olhada bugs / problemas e associá-los com commits ao fazer a cometer pela marcação o número bug id e ( gestão liberação ) tag itens no SVN como parte de uma versão específica com base no sistema de rastreamento de bugs / issue. Esta segunda parte tinha um fluxo de trabalho associado com ele para obter sign-off de usuários / gestão. Então, quando chegou a hora de fazer o lançamento (normalmente a cada quinta-feira), eles poderiam executar um comando para finalizar compra todo o código marcado e implantá-lo.

A minha nova empresa é muito menor e eu estou interessado em encontrar um baixo custo / baixa manutenção equivalente, mesmo se isso significa apenas lidar diretamente com SVN. Em particular, eu encontrar regularmente commits late-in-the-game quebrando nossa construção, e torna-se muito difícil de desvendar o que pode incluir. (Tanto quanto o gerenciamento SVN está em causa, eu tendem a preferir a idéia de etiquetas sobre ramos, porque requerem menos premeditação, mas estou feliz por estar convencido do contrário.)

O que as pessoas usam para commits tag para um lançamento e fazer uma implantação posterior? Há alguma solução boas open-source para gerenciar um ciclo de lançamento que permite que você navegue SVN partir de um navegador web e tag questões / commits para um lançamento? A melhor coisa que eu tenho visto até agora é Jira , mas que se parece com um grande ferramenta (é difícil de configurar / manter?). A Fundação Apache faz bom uso de Jira para este fim (ver, por exemplo, o Mahout roteiro ).

Indo ainda um passo além disso seria ter este mesmo sistema também incluem integração contínua para que os nossos testes de unidade pode ser executado com cada commit e cada bug / problema, então, também têm esta informação associada.

Nota: Há algumas perguntas ligeiramente relacionados sobre stackoverflow, mas eu não vejo nada que cobre este aspecto do ciclo de implantação e gerenciamento de liberação (veja release-gestão-in-svn , gerir-your-project-ciclo de vida , e melhor-way-to-handle-change-gestão ).

Foi útil?

Solução

Se você está encontrando checkins-rebentando construção muito tarde no jogo para resolvê-los de forma eficiente você deve definitivamente pegar o trem CI antes de começar a se preocupar com o processo de liberação. Fazendo desenvolvedores responsáveis ??pela integridade da compilação é um processo muito mais fácil quando há e-mails que saem cada vez que alguém cheques algo em que os parafusos do cão. Torná-lo um jogo; Quem quebra a compilação tem que tomar conta até que a próxima vez que ele é quebrado.

Se levantar e executar com CruiseControl (eu usei CC.NET) não é tão difícil com a subversão (Eu tenho-nos de qualquer processo de construção para falar de construir completamente automatizado e implantação com CC.NET e NAnt em cerca de um mês , intercalados com outras responsabilidades, é claro).

Nós também usamos JIRA e é difícil dar errado lá. Você pode ter JIRA assistir a subversão cometer mensagens para coisas como "Fixed PROJECT-11" e vai automagicamente perto o item JIRA apropriado. Você pode construir suas notas de lançamento de lá.

Outras dicas

Você já investigou o gráfico de revisões Tortoise SVN? Se você marcar cada versão (que, como outros apontaram não envolve a cópia de arquivos, seja no servidor ou estação de trabalho), então você pode ver todas as revisões em ordem cronológica, com as tags que indicam lançamentos reais. Você pode diff entre os lançamentos e / ou tronco por hilighting as duas revisões você está interessado em e selecionando diff no menu de contexto

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