Pergunta

Ao utilizar sub-módulos git, que é a forma preferida de fazer personalizações? Devo ...

  • fork do projeto e acompanhar o garfo
  • tentativa de substituir o comportamento padrão
  • fazer as mudanças localmente

Se nenhum deles faz sentido, então o que faz?

Foi útil?

Solução

Eu não estou muito certo se a sua questão implica que todos os projetos que pretende incluir já são projetos git ou se eles estão atualmente svn, mercurial, não-versão controlada. Se ele é o último, ele teria que ser uma resposta caso a caso.

Muito provavelmente, os projectos que pretende incluir e personalizar já estão, digamos, github e então você definitivamente deve desembolsar através github e usar essas garfos como submódulos. Qualquer personalização deve ser verificado no e empurrou para github.

Ele poderia ser mais complicado se os projectos que pretende incluir está em outro lugar (ou são baseados em svn, mercurial, etc.). É uma maneira de desembolsar os projectos localmente e, em seguida, configurar o cron-jobs para empurrar as alterações de entrada para github. Ou seja, criar espelhos github. Para estar no controle total de ambas fusão e atualizar você pode ter que desembolsar esses espelhos e incluem aqueles garfos como submódulos em seu projeto, o check-in personalizações locais e empurrando-os para a bifurcação do espelho.

# Alternativa 3, projetos de garfo e não check-ins locais só, poderia ser usado em situações em que você não tem o acima opções eo que você está criando não é realmente a intenção de ser facilmente distribuídos.

Monkey patch (alternativa # 2 em sua lista) deve ser uma esquerda alternativa para situações em que você não quer um projeto para tornar-se dependente de você manter um garfo personalizado atualizado com as mudanças a montante.

Outras dicas

Acho bifurcação subprojetos usando submodule git ser extremamente cansativo, que é por isso que escrevi git subárvore em seu lugar.

A idéia de sub git é que você import o conteúdo do subprojeto em seu próprio projeto, para que ramo tudo de uma vez e fazer novos commits como quiser. Então, quando você estiver pronto (ou nunca), você pode usar git subtree split para extrair história do subprojeto e submetê-lo a montante.

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