Übersicht + Frage
Ich möchte die Metadaten-Kontrolle eines eTckeeper- ähnlichen Dateisystems für nicht- / etc, git-gesteuerte Verzeichnisse. Unter anderem Privat- und Web-App-Verzeichnisse reagieren klassisch auf Metadaten (Dateieigentum, Zugriffssteuerungsliste, Berechtigungen). Dies kann äußerst nützlich / wichtig sein, um git unter anderem für die automatisierte Serverbereitstellung (zusammen mit Tools wie Fabric ) einzusetzen . Ich möchte die etckeeper-ähnliche Funktion in diesen Verzeichnissen wiederverwenden, entweder mit etckeeper selbst oder mit etwas anderem.
Kann jemand Tipps / Tricks / Arbeitslösungen vorschlagen, um eine oder beide der folgenden Möglichkeiten bereitzustellen:
- Wenden Sie die etckeeper-Engine (achten Sie nur auf die git-spezifischen Funktionen von etckeeper) auf nicht-git-gesteuerte Verzeichnisse an. (Kann zumindest von Debian / Ubuntu Linux ausgehen; möchte nach Möglichkeit MacOSX / Homebrew- Unterstützung.)
- Erweitern Sie Git mit Metadatenunterstützung (über stark vereinfachte Dinge wie Git-Cache-Meta hinaus ), um eine Etckeeper-ähnliche Funktion zu unterstützen, oder besser?
Weitere Details, Hintergrund
Es besteht ein wachsendes Interesse daran , Git um Funktionen zur Steuerung von Metadaten im Dateisystem zu erweitern . Die Metadaten "Engine" von etckeeper scheint nach meiner Erfahrung ziemlich leistungsfähig und zuverlässig zu sein, und etckeeper scheint auch bei anderen beliebt zu sein . Dies ist zumindest teilweise auf die nicht textbasierten / zusammenführungsunfreundlichen Herausforderungen von metastore zurückzuführen . Weiterhin scheint etckeeper mit einem metastore-basierten Kern begonnen zu haben, aber dann auf einen eigenen umgestiegen zu sein (spekulativ?).
Dies hat offensichtlich betriebssystem- / dateisystemspezifische Abhängigkeiten. (Versuchen Sie beispielsweise nicht, die automatische Bereitstellung unter Windows durchzuführen.) Schlagen Sie eine optionale Option vorErweiterung (wenn es sich um eine "native Erweiterung" handelt) von git, die vom Benutzer bei Bedarf aktiviert wird und die bekannten Folgen eines plattformübergreifenden Bruchs hat, sodass das native Verhalten die plattformübergreifende Freundlichkeit von git "standardmäßig" nicht beeinträchtigt. Außerdem müssen Sie keine extravaganten Unix / Darwin / etc-Metadaten (wie ACLs) speichern. Grundlegende Benutzer- / Gruppen- / andere Berechtigungen und Benutzer- / Gruppenbesitz wären in Ordnung. (Dies sind die einzigen Dinge, die derzeit Probleme in meinen "Sicherheits- / Schwachstellen-Kontroll- / Richtlinien" verursachen.) Spezifische Betriebssysteme, auf die ich mich im Vorfeld konzentriere: Debian, Ubuntu, MacOS 10.6+. Später: RedHat's (CentOS, Fedora, RHEL), SUSE, möglicherweise andere Linuxe und * BSD (FreeBSD, NetBSD, OpenBSD). Sie sehen keine Notwendigkeit / Anwendung für Windows / VMS (obwohl VMS posix-freundlich sein kann) oder andere nicht-unix-ähnliche Betriebssysteme an einem vorhersehbaren Punkt.
Siehe auch: Hintergrundinformationen zu bereits vorhandenem Git, Dateimetadaten- / Dateityp-Tracking-Funktionen bei dieser von mir geposteten Stapelüberlauf-Frage .
Anforderungen für ein neues Projekt entwickeln?
Außerdem: Wenn jemand Anforderungen für solche Fähigkeiten entwickeln möchte, kann sich dies als nützlich erweisen, insbesondere wenn ein neues / noch nicht abgeschlossenes Projekt oben angesprochen wird.
quelle
Antworten:
Laut dieser Serverfehler-Antwort machen Sie einfach Folgendes :
quelle
Ich beschäftigte mich mit diesem Problem und beschloss, ein Projekt namens git-store-meta dafür zu erstellen .
git-store-meta ist ein Perl-Skript, das die netten Funktionen von git-cache-meta, metastore, setgitperms und mtimestore integriert. Es sollte einen guten Kompromiss zwischen Flexibilität, Funktionalität, Leistung und plattformübergreifender Portabilität und Konsistenz bieten.
quelle