Gentoo altında / etc (dispatch-conf olarak adlandırılır) üzerinde paket kaynaklı değişiklikleri yönetme aracı, değişiklikleri izlemek için rcs'yi destekler, ancak bu gerçekten güçlü değildir.
/ Vb. Yoluyla sürüm oluşturma eğilimindeyim git
, özellikle farklı şubeler kullanarak / etc'imi mümkün olduğunca farklı dağıtımlar üzerinde mümkün olduğunca benzer tutabildiğim için mümkün olduğunca çok şeyi tek bir yerde tutabiliyorum (açıkça başarısız olan bazı alanlar için, apache yapılandırması örneğin farklı dağıtımlarda gerçekten farklıdır). Şöyle çalışır:
master
Varsayılan yapılandırma dosyalarımla repo'm var . Şimdi yeni bir dağıtımla temasa geçiyorum, bu yüzden master
dağıtımın adına (bu örnekte debian) göre şubeme dayalı yeni bir dal oluşturuyorum . Debian bazı yapılandırma dosyasını benden farklı bir konumda tutar, bu master
yüzden ben yaparım git mv file new_loc
. Ve her şey yolunda. Ben geri dönmek master
Ben bazı özel yapılandırma yönergesi eklendi çünkü birleştirdiğinizde, o dosyaya ve değişim master
benim içine debian
dal Esasen sadece içinde en şeyleri değiştirebilir nedenle taşınan dosya, değiştirilir master
şube ve sadece benim "dağıtım" birleştirme değişikliklere sahip şubeleri (genellikle dağıtım ve amaç dallarının bir karışımı olma eğilimindedirler, bir debian sunucusunun debian iş istasyonunda bazı farklılıkları vardır, ancak özellikler hala çalışır).
Yani temelde bir "genel konfigürasyon" var master
ve (nesne yönelimli programlama terimleriyle söylemek gerekirse) bunları benim dallarıma devralıyorum (aynı zamanda birbirinden miras alabilir).
Bunun dışında, git
"cherry-pick" işlemlerini gerçekleştirme mekanizmaları (bu durumda / etc / olarak değişir) benim için sadece belirli bir konfigürasyonun bazı bölümlerine ihtiyaç duyduğum zamanlarda oldukça yardımcı olmuştur.
Şimdi bazı fikirlerinize:
- Daha fazla paket yöneticisi entegrasyonuna ihtiyacım varsa, muhtemelen bunun için sarmalayıcı komut dosyaları kullanırdım (şu anda yapmıyorum).
- akış yukarı sürümleri bir dal olarak işlemek
git
, bazen (kısmen) birleştirdiğiniz başka bir daldır.master
- Git'teki yoksayma listesi, repo dosyanızdaki .gitignore dosyasıdır, böylece kapsanır.