Mersi mul lui sabertooth pentru descrierea detaliate a lui mercurial.
o sa dau putin mai multe detalii despre mercurial.
La ce se poate folosi mercurial ?
1. development Pentru toti cei ce scriu cod stiu exact ca e foarte deficil sa mentii codul scris fara un management al codului.
2 pentru fisierele de configuratie (/etc/*) o solutie foarte convenabila pentru administratori este sa mentii un sistem curat si sa stii exact ce ai modificat acum 2 luni la fisierele de configuratie, exemplu "setarile IP-ului", si problema este si mai acuta cand ai de configurat 10-50 servere si trebuie sa stiu exact ce sa configurat cand de cine si de ce.
3 pentru scrierea documentatioe in ASCI format.
Ultima versiunea mercurial-0.9.4
Instalarea
In ubuntu
sudo apt-get update && sudo apt-get install mercurial
In gentoo
emerge sync && emerge mercurial
haideti sa faci un repository pentru fisierele de configuratie din /etc/* in cazul de mai jos este pentru ubuntum dar se poate utiliza pentru orice alta distributie linux.
Merge in directorul unde vrem sa creem repositoriul in cazul de mai jos va fi /etc/
#cd /etc
Crem repositoriul pentru directorul /etc PS; proiectul se va numi etc dupa numele directorului unde se creaza repositoriul.
#sudo hg init
daca vrem sa excludem anumite fisiere sa nu fie importate in repositorui putem uteliza fisierul .hgignore unde putem adauga diferite fisiere sau extensii de fisiere pe care le vom exclude din repositoriu.
syntax: glob
*.orig
*.rej
*~
*.o
tests/*.err
syntax: regexp
.*\#.*\#$nu le vrem in repositoriu.
Acum putem incepe modificare fisierelor de configuratie fara teama de a strica ceva ireversibil.
dupa ce ati modificat ce ati avut de modificat in /etc/ verificam cu hg ce sa modificat cu comanda
#sudo hg status
unde vom avea o lista de fisiere se au suferit modificari de la ultima comitere in repositoriu.
Pasul urmator este sa salvam modificarile fisierului su fisierelor in repositoriu. Ex modificarea inregistrarilopr DNS din /etc/resolv.conf"
#sudo hg commit -m "comentariul vosrtu pentru modificarile aduse in /etc"
este bine sa avem o copie a repositoriului in caz de ... ?
#sudo hg clone etc etc-curent
la care se mai adauga si o copie on-line pe alt server in caz ca va puteti confrunta cu o pana hardware.
Vom presupune ca avem deja instalat pe un alt server "ServerB" mercurial.
#sudo hg clone ssh://user@serverB/home/buckup_serv1/etc
dupa o perioada de de modificari este bine sa resincronizam repositoriile
PS; vom executra sincronizarea de pe serverulB de bakup
#sudo hg pull --update ssh://user@serverA/
#sudo hg status
#sudo hg commit -m "am sincronit /etc/ de pe serverul primar pe cel backup"
Se poate face sincronizarea si de pe serverul sursa
Ex
#sudo hg push ssh://user@serverB/home/backup_serv1/etc
In caz ca vrem sa vedem modificarile aduse in timp la /etc
#sudo hg log -v
Exemplu de mai sus nu se recomanda a folosi din cauza ca directorul /etc/ continu multe fisiere binare sau fisiere de care nu veti atinge niciodata, pentru teste incercati sa creati un director in $HOME si sa va jucati acolo pana va obisnuiti si utelizati doar directoare din /etc/ in care continutul este modificate cel mai frecvent.
Vedeti mai multe comenzi posibile
verificarea diferentelor
$ hg diff
A reveni la starea initiala inainte de modifirare
$ hg revert file_name_changed
Adaugarea de noi fisiere in repositoriu
$ hg add fisier_nou
etc.
Mercurial este unul din cele mai simple si eficiente SCM dar are si un grad de complexitate pentru cei ce vor mai mult control.
Dupa ce veti incepe sa-l utelizati o sa va indragostiti de acest SCM.
Go for it
