Ich habe seit vielen Jahren mein gesamtes $HOME
Verzeichnis in Subversion eingecheckt. Dies beinhaltete alle meine Punktedateien und Anwendungsprofile, viele Skripte, Tools und Hacks, meine bevorzugte Basisstruktur für das Home-Verzeichnis, nicht nur einige seltsame Projekte und ein Warehouse mit zufälligen Daten. Das war eine gute Sache. Solange es dauerte.
Aber es ist außer Kontrolle geraten. Die grundlegende Kaufabwicklung ist auf Dutzenden von Systemen gleich, aber nicht alle diese Dinge sind für alle meine Maschinen geeignet. Es spielt nicht einmal alles gut mit verschiedenen Distributionen.
Ich bin gerade dabei, das Haus zu säubern - die Daten dort zu trennen, wo sie hingehören, einige Skripte als separate Projekte aufzuteilen, einige defekte Links in Sachen zu reparieren, die automatisiert werden sollten usw.
Meine Absicht ist , zu ersetzen , subversion
mit git
der Top - Level - Kasse von $HOME
, aber ich möchte diese nach unten pare nur auf die Dinge , die ich auf alle meine Systeme haben möchten, was bedeutet , dotfiles, einige Verzeichnisse und einige grundlegende benutzerdefinierte Skripts.
Beim Online-Lesen scheinen viele Leute dies mit dem Symlink-Ansatz zu tun: Klonen Sie in ein Unterverzeichnis und erstellen Sie dann Symlinks aus $HOME
dem Repository. Nachdem ich $HOME
über ein Jahrzehnt lang unter voller Versionskontrolle war, mag ich die Idee dieses Ansatzes nicht und ich kann nicht herausfinden, warum die Leute der direkten Checkout-Methode so abgeneigt erscheinen. Gibt es Fallstricke, die ich git
als Top-Level-Checkout kennen muss $HOME
?
PS: Zum Teil als Übung für gutes Coding plane ich auch, meinen Root-Checkout auf Github zu veröffentlichen. Es ist beängstigend, wie viele sicherheitsrelevante Informationen ich in Dateien sammeln darf, die ohne weiteres gemeinsam genutzt werden können! WiFi-Passwort, nicht passphrasierte RSA-Schlüssel usw. Eeek!
git
Wechseln von Zweigen oder beim Auschecken eine frühere Revision die Berechtigungen Ihrer Dateien auf 644
nach dem Auschecken ändert, was für Dinge wie private SSH-Schlüssel schlecht ist. Es ist jedoch etckeeper
eine Lösung für die Verwendung von Git mit Berechtigungen für / etc /
.zshrc
, .vimrc
ohne sie zuerst desinfizieren zu müssen!