Pergunta

Atualmente, estou usando TortoiseSVN para gerenciar um par dos projetos que tenho em movimento no momento. Quando me mudei tudo no controle de origem Eu não estava realmente certo de como tudo deve ser colocado para fora por isso, acabei colocando cada projeto em seu próprio repositório.

Eu estava pensando que seria uma boa idéia para mim apenas para movê-los todos em um grande repositório e tê-los dividido em pastas de projeto? O que todo mundo faz?

No momento nenhum deles compartilha código comum, mas eles podem no futuro. Seria torná-lo mais fácil de gerenciar se eles onde todos juntos.

Graças.

Foi útil?

Solução

Depende de uma forma que você entende por "projeto".

Eu tenho um repositório local geral contendo bits aleatórios de coisas que eu escrevo (incluindo o meu site, uma vez que é pequena). Um usuário único repositório SVN local não vai sofrer problemas de desempenho perceptível até que você gastou um monte de anos de digitação. Altura em que SVN será mais rápido de qualquer maneira. Então, eu ainda tenho que me arrependo de ter jogado tudo em um repositório, embora algumas das coisas lá dentro é completamente alheios diferente do que eu escrevi tudo.

Se um "projeto" significa "uma atribuição de classe", ou "os scripts que eu uso para dirigir meu TiVo", ou "o meu progresso na aprendizagem de uma nova língua", em seguida, criar um repos por projeto parece um a desnecessária bit mim. Então, novamente, não custa nada. Então eu acho que eu diria que não mudar o que está fazendo. A menos que você realmente quer a experiência de repositórios organizar re-, caso em que do mudar o que está fazendo: -)

No entanto, se por "projeto" você quer dizer um projeto de software 'real', com acesso público para o repositório, então eu acho repos separados por projeto é o que faz sentido: em parte porque ele divide as coisas de forma limpa e cada escalas de projeto de forma independente, mas também porque é o que as pessoas vão esperar para ver.

A partilha de código entre repositórios separados é um problema menor do que você imagina, desde SVN tem a bastante agradável: recurso "svn externos". Isso permite que você apontar um diretório do seu repositório em um diretório em outro repositório, e verificar que o material automaticamente, juntamente com o seu material. Veja, como sempre, o livro SVN para mais detalhes.

Outras dicas

Gostaria de armazená-los no mesmo repositório. É uma espécie de mais puro. Além disso, por que isso importa para a integração contínua e tal - você sempre pode puxar uma pasta específica a partir do repositório.

É também mais fácil de administrar -. Responde a um repositório, logs de acesso de um repositório etc

Minha regra de ouro é consolidar as coisas que são entregues em conjunto. Em outras palavras, se você pode entregar projeto X e projetar Y separadamente, em seguida, colocá-los em repos separadas.

Sim, às vezes isso significa que você tem uma enorme repo para um projeto que contém um grande número de componentes, mas as pessoas podem operar em sub-árvores de um repo e isso os obriga a pensar no "projeto inteiro" quando cometem alterações ao repo.

Eu absolutamente manter cada projeto em seu próprio repositório, separado de todos os outros. Isto dará a cada projeto seu próprio histórico de commits. Reversões em um projeto não afetará outros projetos.

Pessoalmente, prefiro cada projeto em seu próprio repositório

Se você trabalha com um monte de outras pessoas que você pode considerar se todos precisam do mesmo nível de acesso a cada projeto. Eu acho que é mais fácil dar direitos de acesso por pessoa, se você colocar cada projeto em um repositório separado. ~~~

Se você está indo com um repositório separado para cada projeto, você pode usar o tag externa para se referir a outros repositórios -thus código de ação.

Enquanto cada projeto tem / trunk / tags e / ramos você é bom. integração contínua adequada é o critério aqui.

Sim, colocar tudo no controle de origem.

Se você estiver usando SVN, manter os projetos em seu próprio repositório - svn é lento, e fica mais lento

.

Se os seus projectos são independentes, não há problema em mantê-los em repositórios separados. Se eles compartilham componentes, em seguida, colocá-los juntos.

Para Subversion, eu sugiro colocar tudo no mesmo repositório; a sobrecarga administrativa da criação de um novo repositório é muito alto para torná-lo um acéfalo, então você é mais provável não para a versão algo e se arrepender mais tarde. Subversion fornece uma abundância de controles de acesso de grão fino, se você precisar restringir o acesso a uma parte de seu repositório.

Como eu começar a migrar meus projetos para Mercurial, no entanto, eu tenho mudado para a criação de um repositório por projeto, porque ele só tem um "hg init" para criar um novo no lugar, e eu posso usar o floresta hg extensão para facilmente executar operações em repositórios aninhados. Subversion tem svn:. Externos, que são um pouco semelhante, mas requerem a sobrecarga mais administrativo

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