Pamięć jednak jest zawodna, dlatego najlepszym pomysłem jest zautomatyzowanie procesu i ustawienie cyklicznego wywoływania procesu.
Do tego wystarczy pojedynczy wiersz w cronie. Jednakże jeżeli na co dzień uzywamy wielu repozytoriów, tych wpisów musiałoby być w cronie więcej.
By zachować w nim porządek chciałbym zaproponować inne podejście:
Tworzymy sobie plik ~/.gitrepos, do którego wpisujemy ścieżki projektów, które chcemy "utrzymać w czystości"
/media/truecrypt1/workspace/current/project_A/ /media/truecrypt1/workspace/current/project_B/ /media/truecrypt1/workspace/old/project_C/ /media/truecrypt1/workspace/another/project_D/
Potem już tylko crontab -e i wklejamy:
30 2 * * * cat ~/.gitrepos | xargs -I {} git --work-tree={} --git-dir={}.git gc
Taki wpis, codziennie w nocy o 2:30 będzie odpalał git gc dla każdego repozytorium z zapisanych katalogów. Użycie --work-tree oraz --git-dir jest konieczne, dlatego że domyślnie polecenie z crona jest odpalane w katalogu domowym.
PS. jeżeli nie lubisz/nie chcesz używać crona w tradycyjny/trudniejszy sposób, zainstaluj sobie nakładkę graficzną gnome-schedule (sudo apt-get install gnome-schedule)
O, używasz truecrypta;-) Z ciekawosci zapytam: jak duze masz repo, ze git Ci przymula? (Mam na myśli branch, label, file, disk size). Fajna 'sztuczka' ;-)
OdpowiedzUsuń@Pawel:
OdpowiedzUsuńNDA nie pozwala mi napisać o wszystkich szczegółach, jednak jest to kilkaset MB, kilkadziesiąt tys. plików, kilka tys. branchy ;)