Eu tenho um repositório Git no qual todo o meu código está na ramificação mestre e anteriormente estava ignorando todos os arquivos do Drupal, para manter uma separação estrita entre o código que escrevi (ou modifiquei ou pode modificar) e o código que poderia ser gerado com Drush ou o que seja.
Parecia uma boa estratégia até que eu tive que atualizar o Drupal. Percebi que quero ser capaz de reverter se as coisas correrem mal e que ferramenta melhor usar do que o Git para fazer isso. Pensei comigo mesmo que essa seria a situação perfeita para um ramo de recursos; portanto, criei um drupal-7.14
ramo, dando-lhe o direito .gitignore
de ignorar todos os meus arquivos de código e configurações e prestando atenção apenas nos arquivos que fazem parte da instalação do Drupal que eu não faria ' Não toque. Fiz uma atualização manualmente (faça o download, descompacte, descompacte, copie), classificando os casos limítrofes como robots.txt e .htaccess e substituindo o .gitignore do Drupal pelos meus. Corrigi algumas configurações que funcionavam com o 7.14, mas não com o 7.15, para recuperar um erro de 500 e, em seguida, tudo parecia perfeito. Renomeei o ramo para drupal-7.15
e estava prestes a seguir feliz no meu caminho.
Até que eu percebi o que havia feito inadvertidamente: arquivos que anteriormente não eram rastreados pelo meu ramo mestre, mas deixados no diretório de trabalho, agora eram removidos do diretório de trabalho quando eu fazia o check-out do mestre, já que não eram mais arquivos não rastreados! D'oh!
Se eu mesclar o drupal-7.15
ramo com o mestre, perderei a separação do código.
Provavelmente existe uma maneira de converter uma ramificação em um submódulo. Supondo que isso seja possível, essa pode ser a melhor estratégia. Antes de fazer isso, eu sabia que os submódulos eram a solução "certa", mas como não percebi o efeito colateral de usar ramificações para arquivos não rastreados anteriormente, decidi cortar os cantos e seguir esse caminho. (Além disso, todas as abordagens que utilizei nos submódulos com o Drupal assumem que você está iniciando um novo projeto e o Drupal será o ramo principal. É indesejável para mim tornar o código de outra pessoa o ramo principal, e eu já tinha um repositório com uma ramificação mestre. Parecia que seria desnecessariamente complicado apenas fazer uma atualização.)
Pode haver alguma outra solução que eu não tenha pensado.
Como posso me recuperar melhor com o menor número possível de desvantagens?
ATUALIZAÇÃO : Isso está em desenvolvimento (em uma VM Linux no meu laptop) e ainda não foi produzido. No momento em que vamos para a produção, planejo incluir tudo em módulos de recursos, mas isso ainda não está em vigor.
ATUALIZAÇÃO 2 : Sub-módulos podem não funcionar. De acordo com o Pro Git , "Os submódulos permitem manter um repositório Git como um subdiretório de outro repositório Git". Drupal não fornece uma separação tão agradável. Em vez de todo o código Drupal estar em um subdiretório, o relacionamento é mais ou menos invertido, mas ainda não existe uma separação limpa, pois você pode estar editando seu .htaccess e robots.txt, para que seu código e o repositório Drupal sejam misturados. Estou procurando uma solução alternativa para esse problema .