Kami telah memigrasi banyak kode sumber ke git dan sangat senang dengan solusi kami saat ini. Kami ingin agar file konfigurasi server kami diversi versi pada sistem yang sama, tetapi ada beberapa hal yang tidak berfungsi seperti yang kami inginkan dan saya harap seseorang dapat membagikan pengalamannya di sini.
Pertanyaan ini mirip dengan Menggunakan kontrol revisi untuk file konfigurasi server? , tetapi kami memiliki beberapa persyaratan khusus yang tidak berfungsi dengan saran pada pertanyaan itu.
Pengaturan saat ini menggunakan subversi untuk file konfigurasi. Repositori yang sesuai terlihat seperti ini
/ # root repositori + - www.domain.com/ # konfigurasi untuk www | \ - dll / | \ - apache2 / + - dev.domain.com/ # konfigurasi untuk dev | + - dll / | \--memilih/ | \ - app1 / | konfigurasi \ - conf / # untuk app1 di dev \ - staging.domain.com/ # konfigurasi untuk staging
Dengan subversi ini akan berfungsi dengan baik, karena mungkin saja checkout sub-direktori repositori. Selain itu Anda dapat menggunakan svn: eksternal untuk menunjuk ke satu struktur umum untuk beberapa pengaturan konfigurasi yang berbeda. Kami hanya harus berurusan dengan file .svn di semua direktori berversi. Git di sisi lain tidak memiliki svn: pemeriksaan eksternal dan jarang selalu memerlukan jalur dari root ke direktori aktual agar sama.
Ketika membahas migrasi ke git, saya mencoba menuliskan Persyaratan utama untuk versi konfigurasi server:
- kami hanya ingin satu repositori
- harus dimungkinkan untuk dengan mudah mendorong perubahan ke remote pusat
- perubahan harus berisi penulis asli
Apakah ada cara yang baik untuk memiliki semua konfigurasi dalam satu repositori dan hanya memiliki sub-path sebagai copy pekerjaan? Saat ini saya sedang mempertimbangkan dua pendekatan, tetapi ingin menanyakan pertanyaan ini terlebih dahulu
- Jika repositori .git berada di lokasi yang tetap, misalnya di suatu tempat di / var , kita bisa menautkan ke sub-path dari direktori kerja "target". Masalah utama: Saya tidak akan tahu cara untuk "menautkan" dari / etc ke direktori lain untuk hanya mengimpor konten, kecuali menghubungkan satu file.
- Saya menemukan alternatif lain pada pertanyaan SO ini , menyarankan untuk memiliki beberapa cabang dalam satu repositori. Ini tentunya akan menambah kerumitan, tetapi saya bisa melihat kami mencoba cara ini.
Menggunakan git pada satu mesin untuk manajemen file konfigurasi berfungsi dengan baik, tapi saya percaya pasti ada seseorang yang menggunakannya dengan cara yang ingin kita gunakan.
Kariem terima kasih
/
karena izin tulis.