Controle de origem para vários projetos / soluções com bibliotecas compartilhadas
-
02-07-2019 - |
Pergunta
Atualmente, estou trabalhando em um projeto para converter um número de Excel VBA livros movidos a soluções VSTO. Todas as pastas de trabalho irá compartilhar uma série de bibliotecas de classe e conjuntos de terceiros, na verdade a maioria do trabalho é feito nas bibliotecas de classes. Atualmente tenho minha estrutura de pastas definidos como esta.
Base
Libraries
Assemblies
Workbooks
Workbook1
Workbook2
Cada uma das pastas de trabalho será a sua própria solução, e as soluções de pasta de trabalho apenas referência os conjuntos na estrutura da pasta. A minha pergunta é como você colocar para fora o controle de origem? Quer começar o repositório na base? Ou será que você criar um repositório para cada solução de pasta de trabalho? Você reorganizar as pastas?
Agora que o desenvolvimento inicial feito, que estamos prestes a ter um monte de desenvolvedores de fora venha para o projeto nos ajuda a converter o resto das pastas de trabalho e eu realmente gosto da idéia de eles serem capazes de verificar do diretório base e com todas as dependências pronto para ir. Também me preocupo que há outras preocupações que vêm com ter mais de 20 soluções / projetos em um repositório de controle de origem.
Eu quero tudo para ser o mais simples possível para pessoas que se juntam ao projeto, mas não quer sacrificar a usabilidade longo prazo. Em minha mente eu fui indo e voltando, o que é mais simples repositório ou um repositório per solução?
Eu apreciaria e visão que você tem, porque eu estou fora fresco.
Informações adicionais:. Atualmente, estou usando Mercurial pessoalmente, mas o projeto provavelmente terá mudou-se para StarTeam menos que eu possa fazer alguns argumentos convincentes para outra coisa
Solução
Você não menciona na sua pergunta o controle da fonte que você está usando. Como ele não soa como você precisa limitar seu acesso desenvolvedores de fora para o resto do repositório eu não me incomodaria com a criação de múltiplos repositórios. Eu diria que a menos que seu código é executado em milhões de tamanho linhas que tamanho do repositório não é um problema.
Tudo depende do que funcionalidade os suportes do sistema de controle de revisão. Em subversão você pode declarar outras pastas como externo e fornecer um URL do arquivo para o conteúdo dessa pasta, isso fará com que a subversão de lidar com essa pasta como um repositório separado, embora seja dentro de sua estrutura de pastas.