Di bawah Gentoo alat untuk mengelola perubahan yang diinduksi paket ke / etc (disebut dispatch-conf) mendukung rcs untuk melacak perubahan tetapi itu tidak terlalu kuat.
Saya cenderung versi / etc via saya git
, terutama karena dengan menggunakan cabang yang berbeda saya dapat menjaga / etc saya sedekat mungkin melalui distribusi yang berbeda sebanyak mungkin sambil menyimpan barang sebanyak mungkin di satu tempat sebanyak mungkin (untuk beberapa area yang jelas gagal, konfigurasi apache misalnya berbeda antar distribusi yang berbeda). Ini berfungsi seperti ini:
Saya memiliki master
repo dengan file konfigurasi default saya. Sekarang saya berhubungan dengan distro baru jadi saya membuat cabang baru berdasarkan master
cabang saya berdasarkan nama distribusi (dalam contoh ini debian). Debian menyimpan beberapa file konfigurasi di lokasi yang berbeda dari saya master
jadi saya melakukan git mv file new_loc
. Dan semuanya baik-baik saja. Saya beralih kembali kemaster
dan mengubah file itu karena saya menambahkan beberapa perintah konfigurasi khusus, ketika saya bergabung master
ke debian
cabang saya file yang dipindahkan diubah, jadi saya pada dasarnya hanya dapat mengubah sebagian besar hal dalam master
cabang saya dan hanya harus menggabungkan perubahan dalam "distribusi" saya. cabang (biasanya mereka cenderung lebih merupakan campuran dari cabang-cabang distribusi dan tujuan, server debian memiliki beberapa perbedaan dengan workstation debian jelas tetapi fitur-fiturnya masih berfungsi).
Jadi pada dasarnya saya memiliki "konfigurasi generik" di master
dan (untuk mengatakannya dalam istilah pemrograman berorientasi objek) mewarisi mereka ke cabang saya (yang juga dapat saling mewarisi).
Selain itu, git
mekanisme untuk melakukan "cherry-pick" berkomitmen (dalam hal ini perubahan ke / etc /) telah sangat membantu saya pada saat-saat di mana saya hanya membutuhkan bagian-bagian dari konfigurasi tertentu.
Sekarang untuk beberapa ide Anda:
- Jika saya memerlukan lebih banyak integrasi manajer paket, saya mungkin akan menggunakan skrip wrapper untuk ini (saat ini saya tidak).
- memperlakukan versi hulu sebagai cabang akan bekerja dengan baik
git
, itu hanya cabang lain yang terkadang Anda gabungkan (sebagian)master
- Daftar abaikan di git adalah file .gitignore di repo Anda sehingga tercakup.