Come rintracciare $ HOME con git


10

Vorrei tracciare la mia directory $ HOME con git. Ho molti altri repository git in altri sottodir (ad esempio $ HOME / progetti / repo_1 e così via), che non dovrebbero essere monitorati, poiché lo sono già.

Ho trovato git-home-history ma dall'archivio sembra che il progetto non sia più sviluppato attivamente.

Quale approccio mi hai raccomandato? Ghh è abbastanza maturo?

Sono su un Mac ma sono interessato anche a soluzioni multipiattaforma.

Grazie

ps: ho cercato ma non ho trovato duplicati, ti preghiamo di segnalarli se questo è già stato discusso.

Risposte:


5

Lo sto facendo da un po 'solo usando git. Non tengo traccia dell'intera directory home, ma solo delle parti che sto cambiando attivamente. Ciò include la mia directory home / bin, che contiene molti piccoli script, la mia directory .vim e alcuni progetti più grandi in altre directory. Inoltre ci sono alcune configurazioni per terminali e openbox, così come varie altre app, aggiunte al repository.

Funziona abbastanza bene poiché tutte queste cose hanno lo stesso set di autorizzazioni e non mi interessa il timestamp originale. Sta arrivando al punto in cui sto pianificando di dividerlo in sottomoduli usando git filter-branch. Questo è un po 'complicato, dal momento che ci sono interdipendenze tra i file in diverse sottodirectory (ad esempio alcuni script .vim potrebbero chiamare script dalla mia directory bin ... non un ottimo esempio ma speriamo di ottenere il punto).

Non ho trovato soluzioni più complete, ma non ne ho ancora esaminato nessuno, inclusa la storia di git-home. Sembra che sarebbe piuttosto complicato mettere l'intera directory home sotto controllo di revisione, e ci sarebbero molte variabili. Ad esempio, se metti i tuoi profili firefox sotto controllo di revisione, finirai per accumulare enormi quantità di differenziali binari. Inoltre ci sono cose come i tasti ssh che sono spesso meglio perse che duplicate.

Se vuoi tenere traccia delle autorizzazioni (oltre al bit eseguibile, che git già tiene traccia), a quanto pare c'è un hook che lo farà. È menzionato in questo thread serverfault .


Hai capito il mio caso d'uso: in effetti sono interessato agli script e alle configurazioni di versioning. Andrò con questo approccio di base.
Francesco,

Cordiali saluti: Il problema che sto incontrando in questi giorni è che non voglio ramificare la mia directory .vim quando lavoro su nuovi componenti. Sto prendendo in considerazione una serie di approcci diversi: probabilmente finirò per dividerlo in un modulo separato usando filter-branche configurando un clone di 'work in progress' in una sottodirectory di ~. Questa sembra essere una strategia generalmente utile: mi aspetto che sia altrettanto utile clonare l'intero repository dir home, quindi testare gli script dopo aver impostato $ HOME nella directory clone. Non sono sicuro di quanto sia universalmente rispettata quella variabile d'ambiente ma vedrò.
intuito il

0

Puoi usare git nella tua home directory, quindi usare i sottomoduli git o la revisione dell'albero per i progetti git esterni su cui lavori.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.