Pergunta

Antes de começar: Eu passei muito tempo em muitos fóruns (incluindo Stack Overflow - e sim, há um monte de perguntas assim por diante organizar SVN), que pesquisam no Google, e leitura de documentos (eu possuo alguns livros Subversion). Eu ainda não encontrei uma boa maneira de organizar a nossa base de código no Subversion. Atualmente usamos RCS como nosso sistema de controle de revisão, e tudo é armazenado em um diretório RCS - Feio, eu sei - é por isso que eu estou trabalhando em direção a algo melhor. Eu usei também Subversion muito, então eu sei que é capacidades e como ele funciona. I têm hesitado fazer esta pergunta por meses, uma vez que não é completamente programação relacionada, mas desde que eu não tenho sido capaz de chegar a uma solução, que melhor lugar para fazer a minha pergunta!

O que complica as coisas na minha cabeça é o termo subversão "Projeto". Se eu quiser gerenciar um projeto java na subversão, isto faz sentido para mim: todos os arquivos Java que são combinados em um arquivo jar pode ser considerado um "Projeto" - todos eles pertencem juntos. No entanto, em nosso meio, eu não vejo uma maneira fácil de definir o que é um "projeto" é. Temos mais de 4.000 programas, e todos eles são praticamente independentes um do outro. Muitos deles são scripts shell ou scripts perl. Alguns de nossos scripts usam "utilidade" genérico ou scripts de "biblioteca", mas para a maior parte, todos os objetos de código são indepenant.

Um "Projeto" em nosso ambiente pode envolver programa A, B, e C, e arquivo de configuração AA. Outro projeto poderia usar programas C, D, e E, e arquivo de configuração BB. No entanto, outro projeto poderia ser apenas mudando AA arquivo de configuração, ou talvez programa B. Não existe uma forma de classificar os programas ou arquivos pertencem a um grupo. Devido a isso - eu não tenho nenhuma idéia de como organizar o nosso código em subversão. Eu poderia colocar tudo em um tronco de projeto mestre, mas, em seguida, check-out um meio de cópia de trabalho a visitar a todos os 4.000 + elementos.

Para dar algum contexto, isto é para um Data Warehouse. Todos os 4.000 + elementos de código são necessários para fazer a função de armazém. Talvez uma certa exigência de negócio vem em que requer mudanças de uma coluna que é acessado em alguns dos elementos, e um outro requisito de negócio exige mudanças para alguns outros elementos (talvez alguns da mesma do outro projeto).

Talvez Subversion não é a melhor opção para nós, embora eu tenho que acreditar que ele possa trabalhar. Nós já temos um servidor Subversion para o nosso código web e os nossos programas Java, e ele funciona muito bem, porque há projectos facilmente definidos. Eu só não consigo descobrir como organizar nossa biblioteca de código principal.

Esperemos que alguns de que fazia sentido ... Agradecemos antecipadamente a sua sabedoria!

Foi útil?

Solução

Você pode olhar para o externos propriedade. Ele permite que você defina que check-out do diretório para o qual é essa propriedade anexada, também vai check-out outros locais dentro do repositório para subdiretórios do diretório.

Assim que você pode criar o diretório "real" para cada componente e, em seguida, criar diretório separado para cada projeto que irá utilizar os externos para check-out de componentes necessários.

Outras dicas

Gostaria de tentar organizar a estrutura de pastas dos arquivos antes de simplesmente despejá-la em um repositório Subversion.

Eu acho que o problema reside principalmente na desorganização dos arquivos existentes. Se você puder encontrar uma maneira de dividir logicamente o seu sistema em segmentos, então seria mais fácil para permitir que as pessoas a apenas check-out pedaços de arquivos (que seria em agrupamentos lógicos).

Subversion realmente espelhos um sistema de arquivos, por isso, se ele não ficar bonita em um sistema de arquivos, ele não vai ficar bonita na subversão quer.

Se você quer evitar reorganizar arquivos, talvez você pode encontrar um sistema de controle de versão que permite check in / out coisas com base em tags, em vez de onde eles estão no sistema de arquivos.

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