Per molti anni ho avuto il mio intero $HOME
elenco verificato in sovversione. Ciò ha incluso tutti i miei dotfile e profili applicativi, molti script, strumenti e hack, la mia struttura di directory home di base preferita, non alcuni progetti strani e un magazzino di dati casuali. Questa è stata una buona cosa Fino a quando è durato.
Ma è sfuggito di mano. Il checkout di base è lo stesso su dozzine di sistemi, ma non tutte quelle cose sono appropriate per tutte le mie macchine. Non tutti giocano bene con diverse distro.
Sono in procinto di pulire la casa - separare i dati a cui appartiene, suddividere alcuni script come progetti separati, riparare alcuni collegamenti interrotti in cose che dovrebbero essere automatizzate, ecc.
Il mio intento è quello di sostituirlo subversion
con git
il checkout di livello superiore $HOME
, ma mi piacerebbe ridimensionarlo solo alle cose che vorrei avere su TUTTI i miei sistemi, ovvero dotfile, alcune directory e alcuni script personalizzati di base.
Nel leggere online molte persone sembrano farlo utilizzando l'approccio symlink: clonare in una sottodirectory e creare collegamenti simbolici $HOME
nel repository. Avendo avuto il mio $HOME
controllo completo della versione per oltre un decennio, non mi piace l'idea di questo approccio e non riesco a capire perché le persone sembrano così avverse al metodo di checkout diretto. Ci sono delle insidie che devo sapere su git
come checkout di alto livello $HOME
?
PS In parte come esercizio di buona programmazione, sto anche pianificando di rendere pubblico il mio checkout su github. È spaventoso quante informazioni sensibili sulla sicurezza che ho permesso di raccogliere in file che dovrebbero essere condivisibili senza pensarci due volte! Password WiFi, chiavi RSA non passphrased, ecc. Eeek!
git
cambi ramo o fai il checkout una revisione precedente cambierà le autorizzazioni dei tuoi file 644
dopo il checkout, il che è dannoso per cose come chiavi ssh private. comunque etckeeper
è una soluzione per usare git con permessi per / etc /
.zshrc
, .vimrc
e le cose simili, senza dover disinfettare loro per primi!