Transferir a base de código herdada dos cvs para o repositório distribuído (por exemplo, git ou mercurial). Sugestões necessárias para o design inicial do repositório [fechado]

Introdução e Contextualizaçã

Estamos no processo de alteração do sistema de controle de origem e atualmente estamos avaliando git e mercurial. A base total de códigos é de cerca de 6 milhões de linhas de código, portanto, não são massivas nem muito pequena

Deixe-me começar com uma breve introdução à aparência do design atual do repositóri

Temos uma pasta base para a base de código completa e, abaixo desse nível, existem todos os tipos de módulos usados em vários contextos diferentes. Por exemplo, “dllproject1” e “dllproject2” podem ser vistos como projetos completamente separados.

O software que estamos desenvolvendo é algo que chamamos de configurador, que pode ser personalizado infinitamente para diferentes necessidades dos clientes. No total, provavelmente temos 50 versões diferentes deles. No entanto, eles têm uma coisa em comum. Todos eles compartilham alguns módulos obrigatórios (obrigatório_module1 ..). Essas pastas contêm basicamente código do kernel / núcleo e recursos de linguagem comum etc. Todas as personalizações podem ser qualquer combinação entre os outros módulos (módulo1 ..

Desde que atualmente estamos usando cvs, adicionamos aliases no arquivo CVSROOT / modules. Eles podem parecer algo como:

core –a mandatory_module1 mandatory_module2 mandatory_module3
project_x –a module1 module3 module5 core

Então, se alguém decide trabalhar no projeto_x, ele / ela pode fazer o checkout rapidamente dos módulos necessários por:

base>cvs co project_x
Questõe

Intuitivamente, parece errado ter a pasta base como um único repositório. Como programador, você deve poder verificar o subconjunto exato de códigos necessário para o projeto atual com o qual está trabalhando. Quais são seus pensamentos sobre isso

Por outro lado, parece mais correto ter cada um desses módulos em repositórios separados. Mas isso torna mais difícil para os programadores verificar os módulos de que precisam. Você deve conseguir fazer isso com um único comando. Então, minha pergunta é: existem maneiras semelhantes de definir aliases no git / mercurial?

Quaisquer outras perguntas, sugestões e sugestões são bem-vindas!

PS. Pesquisei perguntas semelhantes, mas não achei que nenhuma delas se aplicava 100% à minha situação.

questionAnswers(4)

yourAnswerToTheQuestion