Apa cara terbaik untuk menjaga kode situs Anda di git dan menarik inti dan berkontribusi dalam repositori yang sama?

11

Kembali ketika drupal berada di CVS saya memiliki situs saya di repositori git dan kemudian menarik inti dan contrib via CVS. Kedua sistem itu hidup berdampingan dan saya bisa melacak perubahan untuk semuanya dan membuat tambalan ke modul contrib. Sekarang dengan git saya tidak yakin apakah hanya mengunduh contrib dan core dan memeriksanya di repositori git situs saya, atau mungkin menggunakan submodul?

Saya bertanya-tanya apakah ada praktik terbaik dalam hal ini? Saya sangat bingung tentang bagaimana memiliki inti sebagai submodule jika repo saya menggunakan direktori root drupals sebagai root sendiri?

naxoc
sumber

Jawaban:

6

Bukan pertanyaan yang persis sama dengan /drupal/260/deploying-drupal-with-git tapi saya punya jawaban yang sama untuk Anda.

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

Saya pikir bermanfaat untuk memiliki Drupal Core sebagai check out nyata, membuatnya misalnya lebih mudah untuk melacak peretasan. Karena kadang-kadang, tidak ada cara lain, baik itu berubah menjadi .htaccess atau mungkin Anda menerapkan beberapa patch untuk bug yang mempengaruhi Anda secara langsung.

Berdir
sumber
Saya suka pendekatan itu. Satu-satunya hal yang saya masih tidak yakin adalah bagaimana mendorong repo ke remote? Maksud saya jika checkout dasar dari drupal.org?
naxoc
Anda dapat memiliki sebanyak mungkin remote yang Anda inginkan. Untuk membuatnya lebih mudah, Anda bisa mengganti nama remote drupal menjadi drupal (git branch rename origin drupal), lalu menambahkan milik Anda sendiri sebagai asal (git remote menambahkan origin [email protected]: repo.git). Anda kemudian masih dapat mengkonfigurasi cabang inti (7.x) untuk menarik dari drupal secara default (cabang git --set-upstream drupal / 7.x 7.x)
Berdir
Sempurna. Itulah yang saya cari!
naxoc
Hanya koreksi kecil ke git branch rename origin drupal- seharusnya git remote rename origin drupal.
naxoc
3

Karena Anda tidak boleh meretas inti, balikkan pemikiran Anda: alih-alih menjadikan inti sebagai submodule dari situs Anda, jadikan kode khusus Anda sebagai submodule inti. Setelah Anda mengkloning repositori inti, Anda dapat melakukan apa pun yang Anda inginkan, termasuk menambahkan submodul Anda sendiri ke dalamnya.

Atau, pertimbangkan untuk tidak menggunakan repositori core git untuk situs Anda dan perbarui ke rilis terbaru menggunakan fungsi lain, seperti drush. Dengan cara ini, Anda hanya perlu memasukkan modul contribule. Kecuali Anda berkontribusi pada inti atau melakukan hal-hal berdarah yang tergantung pada perbaikan bug yang belum membuatnya dirilis, utilitas untuk mendapatkan semua komitmen melalui VCS sangat minim.


sumber