Genel bakış + soru
Olmayan / etc, git kontrollü dizinler için etckeeper benzeri dosya sistemi meta veri denetimi istiyorum . Ev ve web uygulaması dizinleri, diğerleri arasında, meta verilere (dosya sahipliği, EKL, izinler) klasik olarak duyarlıdır. Bu, diğer şeylerin yanı sıra, otomatik sunucu dağıtımı için ( Fabric gibi araçlarla birlikte) git kullanmak için son derece yararlı / önemli olabilir . Bahsedilen direklerde etckeeper benzeri kabiliyeti ya etckeeper'ın kendisi ya da başka bir şeyle tekrar kullanmak istiyorum.
Aşağıdakilerden birini veya her ikisini birden sağlamak için herhangi bir ipucu / püf noktası / çalışma çözümü önerebilir:
- Etckeeper motorunu (yalnızca git emcker özelliğine dikkat et) etckeeper olmayan / etc, git kontrollü dizinlere uygulayın. (En azından Debian / Ubuntu Linux'u varsayabilir; mümkünse MacOSX / homebrew desteğini ister.)
- Etckeeper benzeri bir özelliği veya daha iyisini desteklemek için git'i meta veri desteğiyle genişletmek ( git-cache-meta gibi aşırı basitleştirilmiş şeylerin ötesinde )?
Daha fazla detay, arka plan
Git'i dosya sistemi-meta veri denetimi yetenekleriyle genişletmeye olan ilgisi giderek artıyor . etckeeper'ın meta veri "motoru" benim deneyimimde oldukça güçlü ve güvenilir görünüyor ve etckeeper başkaları arasında da popüler görünüyor . metastore en azından kısmen metastore'un metin tabanlı olmayan / birleştirme-düşmanca zorlukları nedeniyle . Ayrıca, etckeeper metastore tabanlı bir çekirdek ile başladı, ancak daha sonra kendi (spekülatif?)
Açıkçası, bunun OS / dosya sistemine özgü bağımlılıkları vardır. (örneğin, Windows'ta otomatik olarak dağıtılmaya çalışılmıyor.) İsteğe bağlı bir önerikullanıcı tarafından talep üzerine etkinleştirilen çapraz platform kırılmasının sonuçlarıyla anlaşılır, böylece yerel davranış git'in "varsayılan olarak" platformlar arası kolaylığını bozmaz. Ayrıca, abartılı unix / darwin / etc meta verilerini (ACL'ler gibi) kaydetmenize gerek yok; temel kullanıcı / grup / diğer izinler ve kullanıcı / grup sahipliği iyi olur. (Bunlar şu anda "güvenlik / güvenlik açığı kontrolüm / politikalarımda" kırılan şeylerdir.) Önceden hedeflediğim belirli işletim sistemleri: Debian, Ubuntu, MacOS 10.6+. Daha sonra: Redhat's (CentOS, Fedora, RHEL), SUSE, belki diğer Linux'lar ve * BSD (FreeBSD, NetBSD, OpenBSD). Öngörülebilir herhangi bir noktada Windows / VMS (VMS posix dostu olsa da) veya diğer unix benzeri olmayan işletim sistemleri için bir ihtiyaç / uygulama görmeyin.
Ayrıca bkz: önceden gönderdiğim git, dosya-meta veri / dosya türü izleme yetenekleri hakkında arka plan .
Yeni bir proje için gereksinimler mi geliştireceksiniz?
Ek olarak: Bu tür bir yetenek için gereksinimler geliştirmek isteyen varsa, özellikle yukarıda belirtilen yeni / tamamlanmamış bir proje için yararlı olabileceğinden eminim.