Saya punya repositori Git di mana semua kode saya ada di cabang master, dan saya sebelumnya hanya mengabaikan semua file Drupal, sehingga saya menjaga pemisahan ketat antara kode yang saya tulis (atau dimodifikasi atau mungkin dimodifikasi) dan kode yang bisa dihasilkan dengan Drush atau apa pun.
Ini sepertinya strategi yang bagus sampai saya harus memutakhirkan Drupal. Saya menyadari bahwa saya ingin dapat mundur jika segalanya berjalan buruk, dan alat apa yang lebih baik untuk digunakan daripada Git untuk melakukan itu. Saya berpikir sendiri ini akan menjadi situasi yang sempurna untuk fitur cabang, jadi saya membuat drupal-7.14
cabang, memberikannya sendiri .gitignore
untuk mengabaikan semua kode saya dan file pengaturan dan memperhatikan hanya file yang merupakan bagian dari instalasi Drupal yang saya tidak mau ' t menyentuh. Saya melakukan upgrade dengan tangan (unduh, unzip, untar, salin), memilah-milah kasus batas seperti robots.txt dan .htaccess, dan menimpa .gitignore Drupal dengan milik saya. Saya memperbaiki beberapa pengaturan yang berfungsi dengan 7.14 tetapi tidak dengan 7.15, untuk memulihkan dari kesalahan 500, dan kemudian semuanya tampak sempurna. Saya mengganti nama cabang drupal-7.15
itu dan akan pergi dengan senang hati dalam perjalanan.
Sampai saya menyadari apa yang telah saya lakukan secara tidak sengaja: file yang sebelumnya tidak bisa dilacak oleh cabang master saya tetapi tertinggal di direktori kerja sekarang dihapus dari direktori kerja ketika saya memeriksa master, karena mereka bukan lagi file yang tidak terlacak! Doh!
Jika saya menggabungkan drupal-7.15
cabang dengan master saya akan kehilangan pemisahan kode.
Mungkin ada beberapa cara untuk mengubah cabang menjadi submodule. Dengan asumsi itu mungkin, itu mungkin strategi terbaik. Saya tahu sebelum saya melakukan ini bahwa submodula adalah solusi "benar", tetapi karena saya tidak menyadari efek samping dari menggunakan cabang untuk file yang sebelumnya tidak terlacak, saya memutuskan untuk mengambil jalan pintas dan menempuh rute itu. (Juga, semua pendekatan yang saya lihat menggunakan submodul dengan Drupal menganggap bahwa Anda memulai proyek baru dan Drupal akan menjadi cabang utama. Tidak diinginkan bagi saya untuk membuat kode orang lain menjadi cabang utama, dan saya sudah memiliki repo dengan cabang master. Sepertinya ini tidak perlu rumit hanya untuk melakukan upgrade.)
Mungkin ada beberapa solusi lain yang belum saya pikirkan.
Bagaimana cara terbaik saya pulih dari ini dengan kerugian sesedikit mungkin?
PEMBARUAN : Ini sedang dikembangkan (dalam Linux VM di laptop saya), dan belum diproduksi. Pada saat kami pergi ke produksi, saya berencana untuk membungkus semuanya dalam modul fitur, tetapi itu belum ada.
UPDATE 2 : Submodules mungkin tidak berfungsi. Menurut Pro Git , "Submodules memungkinkan Anda untuk menyimpan repositori Git sebagai subdirektori dari repositori Git lain". Drupal tidak memberikan pemisahan yang bagus. Alih-alih semua kode Drupal berada dalam subdirektori, hubungannya lebih atau kurang terbalik, tetapi masih tidak ada pemisahan yang bersih, karena Anda mungkin mengedit .htaccess dan robots.txt Anda, sehingga kode Anda dan repo Drupal dicampur bersama. Saya mencari solusi untuk masalah ini .