Mój kawałek internetu
Giti jest stosunkowo prostym skryptem napisanym przy użyciu basha, który wykorzystuje GIT-a, do zarządzania kopiami zapasowymi plików, oraz katalogów. W skrócie opiszę jak działa samo giti:
Zapisujemy giti na dysk ( jeszcze nie posiada publicznego repozytorium )
wget http://labs.inventic.it/p/giti.sh -O /usr/local/bin/giti chmod +x /usr/local/bin/giti
Przygotowujemy sobie repozytorium GIT’a w którym będziemy zapisywać dane – odsyłam również do TEJ notki. Następnie uruchamiamy giti:
(1:130)$ giti Usage: -t target [-r -h -s]
A więc po kolei:
- opcja -t to repozytorium docelowe, wykorzystujemy tutaj nazwę kierując się zasadami tworzenia katalogów w naszym systemie ( np. -t work )
- opcja -r usuwa wskazany plik/katalog z backupu ( np. giti -t target -r ~/test – podajemy ścieżki w identyczny sposób jak podczas dodawania )
- opcja -h wyświetla pomoc
- opcja -s nie jest zaimplementowana jeszcze i nie działa
Podczas pierwszego użycia, giti sprawdza czy istnieje docelowy katalog w którym będą przechowywane kopie bezpieczeństwa – domyślnie jest to /tmp/backup:
(1:135)$ giti -t test giti.sh Enter giti target directory [/tmp/backup]: /home/tx/.devel/backup Target directory already exists. Exiting...
W tym momencie giti utworzył plik ~/.giti i zapisał w nim lokalizację katalogu dla backupów.
Kolejne uruchomienie, będzie skutkowało sprawdzeniem, czy docelowe repozytorium ( np. wspomniane wyżej ‘work’ istnieje ):
(1:131)$ giti -t work giti.sh Target directory /home/tx/.devel/backup/workdir/work doesn't exists. Do You wanna create it [y/n]? y Enter full git clone/push repository path: ssh://git@scm.inventic.it/inventic/work-backup.git
W tym momencie, repozytorium zostanie pobrane do katalogu backupu i można zacząć pracę.
(1:137)$ giti -t work giti.sh Copy [file] /home/tx/.devel/_projects/inventic-labs/web-app/htdocs/p/giti.sh to /home/tx/.devel/backup/workdir/work/inv0/home/tx/.devel/_projects/inventic-labs/web-app/htdocs/p/
Zwróćcie uwagę na to, gdzie plik został zapisany w naszym repozytorium. Giti kieruje się zasadą utrzymania porządku w docelowym repozytorium, a więc:
$GITI_HOME_DIR / $REPOSITORY / $HOSTNAME / $DIRECTORY_REALPATH / $TARGET_FILE
Czyli jeśli użyjemy tego samego repozytorium z wielu różnych maszyn, otrzymamy ładne drzewko z przyporządkowanymi backupami dla każdej z nich.
Myślę, że to prosty i za razem strasznie pożyteczny model backupowania wykorzystując tak potężny system kontroli wersji jakim jest GIT. Ustawiene GITI dla IDE z którego akurat Ty korzystasz, czy do innych celów również nie powinno stwarzać jakichś większych problemów.
PS. ja używam giti zamiast rsnapshot do kopiowania konfigów uruchamiając je za pomocą crontaba.
Powodzenia! ;-)
Komodo – local file history - iX, For Now.
June 16th, 2011 at 15:14
[...] dostępny tam zestaw triggerów, hooków, oraz wielu innych opcji. Tak więc, dlaczego nie użyć GITI do backupowanie każdej jednej zmiany dla dowolnego pliku otwieranego przez IDE? Eclipse, czy [...]