Ho un repository Git in cui tutto il mio codice si trova nel ramo master e in precedenza stavo semplicemente ignorando tutti i file Drupal, in modo da mantenere una stretta separazione tra il codice che ho scritto (o modificato o che potevo modificare) e il codice che potrebbe essere generato con Drush o altro.
Sembrava una buona strategia fino a quando non ho dovuto aggiornare Drupal. Mi sono reso conto che volevo essere in grado di tornare indietro se le cose fossero andate male e quale strumento migliore da usare di Git per farlo. Ho pensato che questa sarebbe stata la situazione perfetta per un ramo di funzionalità, quindi ho creato un drupal-7.14
ramo, l' ho fatto proprio .gitignore
per ignorare tutti i miei file di codice e impostazioni e prestare attenzione solo ai file che fanno parte dell'installazione di Drupal che non vorrei essere toccante. Ho fatto un aggiornamento a mano (download, decomprimere, decomprimere, copiare), selezionando i casi limite come robots.txt e .htaccess e sovrascrivendo il .gitignore di Drupal con il mio. Ho riparato alcune impostazioni che funzionavano con 7.14 ma non con 7.15, per recuperare da un errore 500, e poi tutto sembrava perfetto. Ho ribattezzato il ramo drupal-7.15
e stavo per andare felicemente sulla mia strada.
Fino a quando non ho realizzato ciò che avevo inavvertitamente fatto: i file che in precedenza non erano stati tracciati dal mio ramo master ma lasciati nella directory di lavoro erano ora rimossi dalla directory di lavoro quando ho controllato master, poiché non erano più file non tracciati! D'Oh!
Se unisco il drupal-7.15
ramo con il master perderò la separazione del codice.
C'è probabilmente un modo per convertire un ramo in un sottomodulo. Supponendo che sia possibile, potrebbe essere la migliore strategia. Prima di farlo sapevo che i sottomoduli erano la soluzione "giusta", ma dato che non avevo realizzato l'effetto collaterale dell'utilizzo dei rami per file precedentemente non tracciati, ho deciso di tagliare gli angoli e seguire quella strada. (Inoltre, tutti gli approcci che ho visto sull'uso dei sottomoduli con Drupal presuppongono che tu stia iniziando un nuovo progetto e Drupal sarà il ramo principale. Per me non è desiderabile rendere il codice di qualcun altro il ramo principale, e ho già avuto un repository con un ramo master. Sembrava che sarebbe inutilmente complicato solo fare un aggiornamento.)
Potrebbe esserci qualche altra soluzione a cui non ho pensato.
Come posso recuperare al meglio da questo con il minor numero possibile di aspetti negativi?
AGGIORNAMENTO : è in fase di sviluppo (in una macchina virtuale Linux sul mio laptop) e non è ancora andato in produzione. Quando andremo in produzione, ho in programma di avere tutto avvolto in moduli funzione, ma non è ancora a posto.
AGGIORNAMENTO 2 : I sottomoduli potrebbero non funzionare. Secondo Pro Git , "I sottomoduli consentono di mantenere un repository Git come sottodirectory di un altro repository Git". Drupal non fornisce una separazione così piacevole. Invece che tutto il codice Drupal sia in una sottodirectory, la relazione è più o meno invertita, ma non c'è ancora una separazione netta, poiché potresti modificare il tuo .htaccess e robots.txt, quindi il tuo codice e il repository Drupal sono mescolati insieme. Sto cercando una soluzione alternativa a questo problema .