Pergunta

Eu vou definir a primeira cena ...

Nós usamos Subversion e atualmente tem uma razoavelmente grande repositório principal. Eu estou olhando para decompô-lo, porém, com a possibilidade de se mudar para Git em uma data posterior. A razão é que a) Git não pode fazer checkouts subpasta tão favores menor do, b) repo podemos usar ramificação muito mais (ramo por recurso).

Nós temos uma aplicação web, e também um aplicativo de automação web.

Eles não dependem diretamente uns aos outros em termos de código. Mas o aplicativo de automação depende do aplicativo web em termos de design. Se uma alteração é feita no aplicativo web que poderia quebrar o aplicativo de automação.

Eu gostaria de dividi-los em de recompra separadas, mas um ponto bom foi levantada. É útil para tê-los sob o mesmo repo, então você sabe que em um certo revisão ambos trabalharam juntos.

Descobrir que com dois repo de separada, com dois conjuntos de números de revisão é, obviamente, bastante complicado. O outro problema é que temos um número de aplicativos (e não apenas a automação que dependem uns dos outros, da API etc ...).

Apenas queria ver os pensamentos das pessoas. Se você lidou com uma questão tão? Você acha que eles devem ou não ser dividida etc ... Você usa algum tipo de ferramenta de implantação para rastrear as várias revisões de cada repo trabalhando juntos etc ...

Foi útil?

Solução

Primeiro, você cria um clone do seu repositório SVN, então você pode dividir o repositório git resultante com git filter-branch.

para obter os dois projetos dependentes novamente, use submódulos. Desta forma repositório pode ser usado com uma revisão fixo (útil para bibliotecas, no seu caso o aplicativo web)

Outras dicas

Em termos de ferramentas, se você construir usando Hudson , ele mantém o controle do conjunto de repositórios e números de revisão utilizados em cada compilação para você. Você pode marcar a partir deste, se necessário.

Se você tem uma ferramenta que funciona dessa maneira, então não é tão importante para limitar o número de revisão de números que você está acompanhando. Eu dividi-lo assim - 1 número pode ser monitorado manualmente,> 1 apoiar necessidades ferramenta. Mas eles não precisam ser ferramentas complexas.

Eu prefiro um único repositório, mas isso é apenas uma preferência pessoal. É baseado em um número de revisão de ser inequívoca, com vários repos você precisa do repo eo número. limites de recompra são, em seguida, sobre as mudanças políticas (por exemplo, este é usado para o código, este por docs empresa, este para a implantação, etc).

Git simplesmente não funciona dessa maneira, então você não tem a opção de usar um único repo. Isso não é uma coisa ruim, ea maioria dos sistemas (como Hudson, Redmine) terá todo o prazer apoiar esta.

dividindo-lhes permite lançar de forma independente, com seus próprios números de versão, mas como você notar, mantendo o controle das dependências pode ser complicado. Nós mudou-se de uma compilação com base no Ant para Maven para nos ajudar com nossas dependências e apesar de alguns problemas iniciais tem sido vale a pena geral. (Temos vários aplicativos que dependem de apis uns dos outros em formas estranhas e maravilhosas.) O esquema básico que seguimos é usar o versão numeração Apache Portable Runtime, que é um sistema de três dígitos, onde as versões usam uma convenção MAJOR.MINOR.PATCH padrão.

Quanto ao processo para a divisão deles vai, eu recomendo dividindo-os pela primeira vez em Subversion; em seguida, se / quando você se move para git, você pode simplesmente apontar svn git nas partes relevantes do repositório para a conversão.

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