Jak śledzić $ HOME za pomocą git

10

Chciałbym śledzić mój katalog $ HOME za pomocą git. Mam wiele innych repozytoriów git w innych podkatalogach (np. $ HOME / projects / repo_1 itd.), Których nie należy śledzić, ponieważ już są.

Znalazłem historię git-home, ale z archiwum wynika, że ​​projekt nie jest już aktywnie rozwijany.

Jakie podejście poleciłeś? Czy ghh jest wystarczająco dojrzały?

Jestem na komputerze Mac, ale interesują mnie również rozwiązania międzyplatformowe.

Dzięki

ps: Szukałem, ale nie znalazłem duplikatów, proszę wskazać je, jeśli zostało to już omówione.

Francesco
źródło

Odpowiedzi:

5

Robię to przez jakiś czas, używając git. Nie śledzę całego katalogu domowego, tylko te części, które aktywnie zmieniam. Dotyczy to mojego katalogu domowego / bin, który zawiera wiele małych skryptów, mojego katalogu .vim i kilku większych projektów w innych katalogach. Istnieją także konfiguracje terminali i Openbox, a także różne inne aplikacje dodane do repozytorium.

Działa to wystarczająco dobrze, ponieważ wszystkie te rzeczy mają ten sam zestaw uprawnień i nie dbam o oryginalny znacznik czasu. Dochodzi do momentu, w którym planuję rozbić część z nich na podmoduły za pomocą git filter-branch. Jest to trochę trudne, ponieważ istnieją zależności między plikami w różnych podkatalogach (np. Niektóre skrypty .vim mogą wywoływać skrypty z mojego katalogu bin ... niezbyt dobry przykład, ale mam nadzieję, że masz rację).

Nie znalazłem żadnych bardziej kompleksowych rozwiązań, ale tak naprawdę nie zajrzałem do żadnej, w tym do historii git-home. Wydaje się, że byłoby dość skomplikowane poddanie całego katalogu domowego kontroli wersji i byłoby wiele zmiennych. Na przykład, jeśli poddasz swoje profile firefox pod kontrolę wersji, ostatecznie zgromadzisz ogromne ilości różnic binarnych. Są też rzeczy takie jak klucze ssh, które często są lepiej zgubione niż zduplikowane.

Jeśli chcesz śledzić uprawnienia (inne niż bit wykonywalny, który git już śledzi), najwyraźniej istnieje taki haczyk . Jest wspomniany w tym wątku błędu serwera .

intuicyjny
źródło
Zrozumiałeś mój przypadek użycia: w rzeczywistości interesują mnie skrypty wersji i konfiguracje. Przejdę do tego podstawowego podejścia.
Francesco
FYI: Problem, w którym się teraz spotykam, polega na tym, że nie chcę rozgałęziać katalogu .vim podczas pracy na nowych komponentach. Rozważam kilka różnych podejść: prawdopodobnie skończę na podzieleniu go na osobny moduł przy użyciu filter-branchi skonfigurowaniu jego klonu „w toku” w podkatalogu ~. Wydaje się, że jest to ogólnie przydatna strategia: spodziewam się, że podobnie przydanie się do klonowania całego mojego domowego repozytorium dir, a następnie testowania skryptów po ustawieniu $ HOME w katalogu klonowania. Nie jestem pewien, jak powszechnie przestrzegana jest ta zmienna środowiskowa, ale zobaczę.
intuicyjnie
0

Możesz użyć git w swoim katalogu domowym, a następnie użyć podmodułów git lub drzewa zmian dla zewnętrznych projektów git, nad którymi pracujesz.

edgester
źródło