Pergunta

No CVS, temos no projeto com vários diretórios lá. Há uma construção noturna que precisa extrair coisas de diretório diferente no mesmo projeto CVS para construir a construção noturna. Então, eu deveria ter isso em mente e tenho que modificar o script de construção para verificar as coisas de diferentes repositórios se mudarmos para o SVN.

Eu li o QA do SVN relacionado, mas tenho minha própria pergunta para a qual preciso da resposta.
Eu posso fazer:

/trunk
/tags
/branches
/3rdparty

Onde tudo o que desenvolvemos sai do /Trunk e qualquer 3rdparty que não mudamos, vai para /3rdparty.

Tudo bem, agora o script de construção noturna precisa marcar o porta -malas, verificar a tag, conferir as coisas necessárias para os diretórios adequados e iniciar o processo de construção.
O resultado da construção (material compilado) pode permanecer no NFS montado por algum período, para que a equipe de integração possa voltar 2 semanas e recriar problemas.

Todas as minhas bases estão cobertas?

Foi útil?

Solução

O SVN Redbook aqui Inclui muitas informações sobre layouts para diferentes tipos de projeto e como gerenciá -los.

Você também pode usar ganchos/gatilhos/externos para extrair dados de um repositório independente chamado '3rd Party'. Então, quando um desenvolvedor verifica um repositório, ele também recebe a terceira parte. Existem várias maneiras de separar preocupações, mas apresentam um repo unificado dos componentes.

Boa sorte

Outras dicas

Pode valer a pena fazer uso de um mecanismo de construção como Hudson ou controle de cruzeiro. O fluxo de trabalho é um pouco diferente - as tags são feitas após a compilação, mas você pode obter módulos extras que oferecem algum controle sobre isso. O ponto é que todo o trabalho de desenvolvimento é feito para você e você obtém uma estrutura decente para suas construções noturnas e você obtém uma boa interface da web para controlar e monitorar tudo.

Pessoalmente, eu colocaria algumas definições externas no porta -malas para atrair as bibliotecas de terceiros apropriados nos locais apropriados. Dessa forma, quando você altera a versão da biblioteca de terceiros, faz as alterações no tronco e não precisa modificar os scripts de construção. Isso também significa que você pode criar versões mais antigas, basta verificar o tronco/tag/ramificação apropriado. Esteja avisado - apenas faça -os no porta -malas, espalhá -los pode levar ao assassinato.

Eu também colocaria o repositório de um pouco:

project
 /trunk
 /branches
 /tags
3rdparty

Simplesmente porque isso oferece mais escopo para adicionar mais projetos de nível superior em algum momento. Fazer isso permite gerenciar projetos diferentes de forma completamente independente - e você ainda pode usar externos para fazer referência às versões certas de uma para outra, se houver dependências - isso interrompe as mudanças em um projeto em silenciosamente projetos dependentes de quebra/mudança.

É possível fazer isso usando repositórios separados também, o que é bom, mas nesse caso eu colocaria separado a seção de terceiros em um repositório separado desde o início.

Por que você não muda a terceira festa para o porta -malas? Quando cada você ramificar, uma cópia da terceira parte entra em filial. E, obviamente, você não vai mudar coisas de terceiros em Branche porque sua filial codificou com base no material de terceiros existentes.

Não tenho tanta certeza de marcar o que você está falando. Esse é o número da versão que você quer dizer? Se for o número da versão, passe esse script e rotule a compilação.

Se os "múltiplos diretórios" forem componentes separados que você deseja fazer uma versão de forma independente, você deve ter cada um em seu próprio repositório para que possam ser marcados separadamente. Mas se tudo for um único projeto independente (ou seja, se você geralmente marcar e ramificar todos os componentes), provavelmente poderá colocar todo o código no mesmo repositório.

Você deve considerar usar externo Para os artefatos de terceiros.

Meu script verifica o tronco, modifica os arquivos (ajusta os números da versão nos arquivos AssemblyInfo.cs, etc.) e depois marca isso. Se você não precisar modificar os arquivos de forma alguma, marcar primeiro será bom também.

Fora isso, sua configuração parece boa para mim, pelo menos.

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