Ich habe mehrere verschiedene Umgebungen, in denen ich arbeite, und mehrere verschiedene Sätze von Punktdateien, die ich in jeder verwende.
Betrachten Sie das Beispiel (vereinfachtes Szenario). Ich habe 3 Umgebungen:
und ich habe einige Punktdateien, die ich in verschiedenen Umgebungen replizieren möchte.
.tmuxrc
--> Work-Desktop , Work-Server , Home-Desktop.fish/
--> Home-Desktop.subversion/
--> Arbeitsplatz , Arbeitsplatzserver.zshrc
Jeweils unterschiedlich für Work-Desktop , Work-Server und Home-Desktop.vimrc
für Work-Desktop und Work-Server und eine .vimrc
für Home-DesktopSpäter möchte ich die Sache vielleicht so ändern, dass ich eine .vimrc
für überall habe (wenn ich mein Homeone aktualisiere, um Vundle zu verwenden, und vims Python-Kompatibilität bei der Arbeit unbreake).
Muss die Angabe unterschiedlicher Dateien für unterschiedliche Umgebungen unterstützen
Muss einige Dateien unterstützen, die in einigen Umgebungen gemeinsam genutzt werden
Muss vermeiden, dass ich Dateien manuell kopieren und sie dann wieder symbolisch verlinken muss
Sollte bei Auslösung zur Versionskontrolle verpflichtet werden
Sollte aus der Versionskontrolle ziehen, wenn ein Update aufgerufen wird.
Sollte Git unterstützen
Wäre schön, wenn es andere Versionskontrollen unterstützen würde (wie SVN und Hg)
Wäre schön, wenn seine Konfigurationsdatei zum Festlegen, welche Dateien in welche Umgebungen gelangen, eine Liste von Hostnamen enthalten würde, aber es gibt andere Lösungen dafür.
Es ist egal , ob es von irgendetwas abhängig ist (Viele .dotfile-Verwaltungstools, die ich mir angeschaut habe, beworben, dass sie von nichts anderem als der Shell abhängig sind)
Muss auf allen Linux-Varianten funktionieren (aber ich interessiere mich nicht wirklich für Mac).
Muss kostenlos und Open Source sein.
Ich habe mir RCM genau angesehen , bin mir aber nicht sicher, ob es meine Anforderungen an die Versionskontrolle erfüllt. Ich habe mir auch GNU STOW und Dotbot kürzer angesehen .
Es gibt vcsh , das mit mehreren Git-Repos, die Ihr Zuhause als Arbeitsverzeichnis haben und deren Git-Verzeichnisse getrennt sind, eine verrückte Magie vollbringt. Aber es scheint zu komplex für meine Bedürfnisse zu sein, ich halte einfach ein Git-Repo an einer anderen Stelle auf meinem System und verlinke manuell, was ich brauche.
Das Arch-Linux-Wiki hat einen großartigen Artikel über Punktdateien .
Warum nicht einfaches Bash- oder Python-Scripting verwenden? Sie könnten in Ihrem VCS jeweils eine und eine Variante jeder der .files haben , die Sie steuern home.
müssen , alles in einem einzigen Verzeichnis, und zwei einfache Skripte save_env und set_env plus eine .env-Datei auf jedem System:wdesk.
wserv.
set_env
würde die .env setzen und die .files mit der env überschreiben . Versionen und Sie möchten wahrscheinlich ein erneutes Einlesen von ihnen mit source
oder dem Äquivalent für die betreffende Datei auslösen .save_env
würde den .env -Wert verwenden, um die entsprechende env zu überschreiben . Dateien mit den aktuellen. Sie können dann alle Änderungen überprüfen und in Ihr VCS übernehmen.Gehen Sie Ihre Anforderungen durch:
Rahmen Catherine White
Spelufo
vcsh pull
aktualisiert so Ihre Punktdateien.Spelufo
Rahmen Catherine White
Spelufo
Rahmen Catherine White