Qual é a melhor maneira de manter o código do site no git e puxar o core e o contrib no mesmo repositório?

11

Quando drupal estava no CVS, eu tinha meus sites em um repositório git e, em seguida, puxei o core e o contrib via CVS. Os dois sistemas coexistiram alegremente e eu pude rastrear alterações em tudo e fazer correções nos módulos de contribuição. Agora, com o git, não tenho certeza se basta baixar o contrib e o core e verificá-lo no repositório git do meu site, ou talvez usar sub-módulos?

Gostaria de saber se existem práticas recomendadas ainda? Estou particularmente intrigado sobre como ter o núcleo como um submódulo se meu repositório usar o diretório raiz do drupals como sua própria raiz?

naxoc
fonte

Respostas:

6

Não é exatamente a mesma pergunta que /drupal/260/deploying-drupal-with-git, mas tenho a mesma resposta para você.

http://freso.dk/en/2011/02/26/managing_fresodk_from_cvs_in_svn_to_git

Eu acho que pode ser útil ter o Drupal Core como um check-out real, facilita, por exemplo, o rastreamento de hacks. Porque, às vezes, simplesmente não há outra maneira, seja para .htaccess ou talvez você tenha aplicado alguns patches para bugs que afetam você diretamente.

Berdir
fonte
Eu gosto dessa abordagem. A única coisa que ainda não tenho certeza é como enviar o repositório para remoto? Quero dizer, se o checkout básico é do drupal.org?
naxoc
Você pode ter quantos controles remotos quiser. Para facilitar, você pode renomear o drupal remote para drupal (ramificação do git renomear origem drupal) e adicionar a sua como origem (git remote add origin [email protected]: repo.git). Você pode então ainda configurar o ramo principal (7.x) para puxar a partir drupal por padrão (git branch --set-a montante Drupal / 7.x 7.x)
Berdir
Perfeito. Era exatamente isso que eu estava procurando!
naxoc
Apenas uma pequena correção para git branch rename origin drupal- deveria ser git remote rename origin drupal.
naxoc
3

Como você não deve invadir o núcleo, inverta seu pensamento: em vez de tornar o núcleo um submódulo do seu site, transforme seu código personalizado em um submódulo do núcleo. Depois de clonar o repositório principal, você pode fazer o que quiser, incluindo adicionar seus próprios submódulos.

Como alternativa, considere não usar o repositório principal do git para o seu site e atualize para a versão mais recente usando outras funções, como drush. Dessa forma, você só precisa submodular os módulos contrib. A menos que você esteja contribuindo para o núcleo ou realizando coisas de ponta que dependem de correções de bugs que ainda não foram lançadas, o utilitário de obter todas as confirmações via VCS é mínimo.


fonte