Despre Dropbox, Git si alte sisteme de bacup

Despre computere, telefoane, tehnologie

Moderator: Manu

Avatar utilizator
Manu
General de divizie
Mesaje: 4120
Membru din: 02 Feb 2007, 01:15
Localitate: Cluj-Napoca
Contact:

Despre Dropbox, Git si alte sisteme de bacup

Mesaj de Manu »

Am instalat Dropbox si eu intr-un final si chiar pare a fi avantajos ca mod de lucru.
In felul acesta pot lucra la un joc de pe mai multe calculatoare.
Ce nu imi dau seama si nu am putut inc aincerca, ar fi:
Daca deschid in Notepad, sa zicem, un document direct din Dropbox si fac niste modificari apoi dau Save. Se actualizeaza automat si pe server? adica isi da seama de modificarea datei salvarii? Asa ar fi chiar super, ar fi cu adevarat ca un folder comun pe mai multe computere.
Ultima oară modificat 06 Oct 2010, 11:10 de către Manu, modificat de 2 ori în total.
Errare humanum est, sed perseverare diabolicum...
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
Campus
Comandantul unitatii
Mesaje: 446
Membru din: 09 Mai 2007, 12:15
Localitate: Cluj Napoca

Mesaj de Campus »

Da, se actualizeaza automat. In plus in dropbox un fisier deschis pe alt calculator apare ca si cum ar fi in lucru. Un alt mare avantaj e faptul ca pe server se pastreaza versiuni anterioare ale fisierului timp de 30 de zile. Asta mi-a salvat mie intr-o seara viata cand am lucrat vreo 4 ore la un proiect pentru masterat si cand era aproape gata am dat select all apoi delete apoi am salvat. Dupa ce mi-am smuls niste peri din cap am mers pe interfata web a dropbox si am gasit pe undeva restore previos versions... si erau acolo toate versiunile fisierului in functie de cum le salvasem eu ordonate dupa data salvarii. Am ales versiunea dinaintea comiterii faptei si s-a restabilit repede si pe calculatorul meu. Apoi mai e avantajul ca iti poti accesa fisierele oriunde ai un browser de internet chiar daca nu instalezi programelu .... Si. last but not least ... Are versiuni si pentru linux.... si pentru iphone .... pentru symbian nu stiu daca are inca.... :D asta ar mai lipsi
Avatar utilizator
Manu
General de divizie
Mesaje: 4120
Membru din: 02 Feb 2007, 01:15
Localitate: Cluj-Napoca
Contact:

Mesaj de Manu »

Atunci este excelent, faza cu bacupurile e foarte utila.
Am vazut ca are si pentru Android, dar pentru Symbian... nu.
Errare humanum est, sed perseverare diabolicum...
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
Mircea_Vutcovici
Soldat
Mesaje: 4
Membru din: 27 Sep 2010, 12:46
Localitate: Montreal

Version Control

Mesaj de Mircea_Vutcovici »

Salut,
Cel mai bine este sa folositi un program care face controlul versiunilor. De exemplu: GIT sau Subversion.
Avatar utilizator
Manu
General de divizie
Mesaje: 4120
Membru din: 02 Feb 2007, 01:15
Localitate: Cluj-Napoca
Contact:

Mesaj de Manu »

Salut si bine ai venit pe aici!
Ce anume e cu cele doua programe? Variante la Dropbox? :)
Errare humanum est, sed perseverare diabolicum...
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
Mircea_Vutcovici
Soldat
Mesaje: 4
Membru din: 27 Sep 2010, 12:46
Localitate: Montreal

Version Control

Mesaj de Mircea_Vutcovici »

Nu e un destinat sa fie folosit ca un remote storage.
Un sistem de control al versiunilor este un software care permite sa pastrezi documente text, deobicei surse de cod cu toate versiunile care au fost create de la inceputul proiectului. Asa ai istoria intregului proiect pe masura ce a evoluat. Poate fi privit ca un backup care ocupa foarte putin spatiu e rapid si permite colaborarea foarte usoara.
De asemenea se pot face separari si apoi combinari de proiecte (numite in engleza branching and merging).
Daca faceti ceva programare cat de cat serioasa este bine sa invatati sa folositi un astfel de program.


Wikipedia RO - controlul versiunilor
Wikipedia RO - git

Wikipedia EN - Revision Control
Wikipedia EN - git
Avatar utilizator
Manu
General de divizie
Mesaje: 4120
Membru din: 02 Feb 2007, 01:15
Localitate: Cluj-Napoca
Contact:

Mesaj de Manu »

Acuma nu stiu ce inseamna programare chiar serioasa. :)
Facem si noi tot felul de aplicatii mai mici pentru niste scopuri imediate, amatori.

Voi studia problema programelor mentionate, suna interesant si este sigur foarte util sistemul.
Errare humanum est, sed perseverare diabolicum...
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
Mircea_Vutcovici
Soldat
Mesaje: 4
Membru din: 27 Sep 2010, 12:46
Localitate: Montreal

Mesaj de Mircea_Vutcovici »

Ai nevoie de control al versiunilor cand:
- ti-a luat mai mult de o zii sa scrii codul
- sau cand programul este modificat si de altii si o sa incorporezi modificarile lor in codul tau
- sau cand ai nevoie de backup pentru codul scris de tine.

Eu am folosit subversion, dar acum am vazut ca multe proiecte trec pe "git" sau pe "mercurial".
IonPop
Colonel
Mesaje: 2166
Membru din: 02 Oct 2010, 17:55

Mesaj de IonPop »

Mircea_Vutcovici scrie:Ai nevoie de control al versiunilor cand:
- ti-a luat mai mult de o zii sa scrii codul
- sau cand programul este modificat si de altii si o sa incorporezi modificarile lor in codul tau
- sau cand ai nevoie de backup pentru codul scris de tine.

Eu am folosit subversion, dar acum am vazut ca multe proiecte trec pe "git" sau pe "mercurial".

Sistemele de control de versiune GIT, Mercurial, Bazaar sunt sisteme distribuite, adica in care nu trebuie neaparat sa existe un repository central, caci fisierele urmarite sunt pastrate intr-un repository local si deci o modificare a fisierelor respective poate fi marcata chiar daca computerul propriu nu are pentru moment acces la internet pentru a salva modificarile in repository-ul central.
De asemenea, operatiunile "merge" se pot face mult mai usor cu aceste sisteme de control ale versiunilor decat cu sistemele centralizate vechi de tipul CVS sau SVN (Subversion).

GIT este creat de Linus Torvalds si este cel mai avansat, cel mai complex si cel mai dificil de utilizat dintre ele. Este si cel mai rapid de departe. Este creat in C si Perl.
Cei mai multi programatori au rareori nevoie de atat de multe facilitati cate ofera GIT.
Pentru programatorii care folosesc doar Unix/Linux, GIT este solutia perfecta. Pentru cei care programeaza si sub Windows GIT nu este pentru moment prea bun, deoarece in prezent versiunea de GIT pentru Windows are anumite incompatibilitati cu command prompt-ul Windowsului si asta poate genera incaruntire prematura.
(Cum GIT este creat de Linus Torvalds, el nu prea este deosebit de interesat sa il faca foarte bun pentru Windows.)

Mercurial si Bazaar sunt mai putin avansate, cu mai putine optiuni, mai usor de utilizat, mult mai lente decat GIT, iar dintre cele doua, Mercurial pare a avea mai multi utilizatori.
Mercurial functioneaza foarte bine si sub Windows fiind solutia recomandata pentru cei care programeaza sub Windows si eventual Unix/Linux.

Dintre sistemele centralizate de control al surselor, Subversion este cel mai bun, doar ca de multa vreme se cam renunta la sistemele centralizate...
Sistemele distribuite pot avea oricate repository-uri pentru acelasi proiect, unul dintre ele putand fi oricand ales ca repository central daca este nevoie.

Totusi, aceste sisteme nu sunt sisteme pentru "backup", adica ele nu salveaza automat modificarile dupa fiecare salvare a unui fisier, ci trebuie date comenzile necesare pentru ca modificarile sa fie inregistrate in repository.
Avatar utilizator
Manu
General de divizie
Mesaje: 4120
Membru din: 02 Feb 2007, 01:15
Localitate: Cluj-Napoca
Contact:

Mesaj de Manu »

Totusi, daca nu se lucreaza la proiecte mari, tot Dropboxul e mai laindemana. Nici nu stiu cam cat de accesibile ar fi aplicatiile mentionate mai sus, cel putin care merg pe Windows.
Cei care lucreaza in domeniu pot spune de fapt cel mai bine care aplicatie in ce proportie se foloseste.
Aplicatiile de mai sus cred ca sunt foarte utile pentru Open Source gen Firefox, phpBB si din astea, ori se foloseste chiar si in programarea in cadrul unei firme cu programe Closed Source?
Pe care dintre ele as putea-o incerca cu JAWS si eu sa vad cam cum arata?
Errare humanum est, sed perseverare diabolicum...
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
Andreea Neagu
Colonel
Mesaje: 1511
Membru din: 16 Ian 2007, 23:15
Localitate: Bucuresti
Contact:

Mesaj de Andreea Neagu »

In firmele care fac soft de calitate care nu este open-source, controlul versiunilor este vital. Ca sa simplific, fara un control strict al versiunilor risti sa dai clientului, la sfarsit, un soft cu cine stie ce bucurie rezolvata la un moment dat si apoi revenita in actualitate din cauza unei simple probleme de versionare.
In firma in care lucrez, cunoasterea softului de control al versiunilor e obligatorie inca din prima luna de la angajare.
IonPop
Colonel
Mesaje: 2166
Membru din: 02 Oct 2010, 17:55

Mesaj de IonPop »

Pentru orice programator, indiferent daca creaza programe open source sau closed source, utilizarea unui sistem de control al versiunilor este vitala.
Dupa ce un programator foloseste o perioada foarte scurta un astfel de sistem ajunge de obicei sa se intrebe cum a putut sa lucreze pana in acel moment fara asa ceva.

Vestea buna este ca aceste sisteme sunt simplu de folosit, sau cel putin cele mai frecvente comenzi de care este nevoie.

Toate aceste sisteme sunt programe care ruleaza in linia de comanda, deci sunt foarte accesibile.
Cam pentru toate exista si variante cu interfata grafica pentru Windows, insa varianta linie de comanda este recomandata fiindca in cele mai multe cazuri este mai completa, poate fi folosita si remote cu SSH, se pot da comenzi mai avansate care pe langa adaugarea in repository sau restaurarea sursei mai pot executa si alte operatii, etc.

Dupa cum am mai spus, GIT este cel mai rapid si avansat sistem de management al surselor, dar in linia de comanda de sub Windows intampina anumite probleme din cauza incompatibilitatii cu ea. Nu strica insa sa fie instalat, mai ales ca instaleaza si un program SSH plus alte programe utile cum ar fi curl, diff, dos2unix, grep, egrep, head, tail, ls, OpenSSL, patch, Perl, ps, scp, ssh-keygen, plus multe altele.
Bineinteles, sunt doar strict programele executabile, asa ca cele mai avansate ca Perl si OpenSSL pot fi instalate separat de cei care au nevoie de ele pentru treburi mai complexe.

GIT este bun si pentru ca poate doriti sa preluati codul sursa al unor programe de pe situl github.com.

GIT pentru Windows se poate descarca direct de la:
http://msysgit.googlecode.com/files/Git ... 101002.exe
Alte variante se pot descarca de la:
http://code.google.com/p/msysgit/downloads/list

Exista si o varianta cu interfata grafica numita TortoiseGIT.
Dupa aparitia programului cu interfata grafica TortoiseSVN pentru vechiul sistem centralizat SVN, pentru cele mai importante sisteme de control al versiunilor au aparut interfete grafice care se numesc si ele "Tortoise" desi sunt create de persoane diferite. Unele dintre aceste interfete grafice sunt foarte accesibile pentru JAWS, dar altele sunt absolut inaccesibile. Nu mai retin care cum este, fiindca eu prefer varianta linie de comanda.

Apoi mai sunt sistemele Mercurial si Bazaar. Bazaar nu am folosit fiindca am vazut ca Mercurial este mai folosit decat Bazaar si dupa ce am testat Mercurial am fost foarte multumit de el.

Mercurial pentru Windows poate fi descarcat de la adresa:
http://bitbucket.org/tortoisehg/thg-win ... -1.6.4.msi

Iar TortoiseHG (HG este simbolul chimic al mercurului) poate fi descarcat de la:
http://bitbucket.org/tortoisehg/stable/ ... .4-x86.msi

Mercurial este creat in limbajul Python si este mai lent decat GIT, insa nu trebuie sa aveti instalat Python fiindca isi instaleaza el o versiune limitata de Python, la fel cum GIT instaleaza Perl.

Puteti citi online cartea "Mercurial, the definitive guide" la:
http://hgbook.red-bean.com/

Alte sisteme de management al surselor mai vechi, de genul SVN sau CVS nu sunt recomandate.

Pentru a utiliza de exemplu HG, adica Mercurial trebuie folosite comenzi de genul urmator:

1. Initierea repository-ului:
hg init

2. Adaugarea tuturor fisierelor neadaugate in repository:
hg commit -A

3. Duplicarea intregului repository pentru a crea un nou set de fisiere sursa pe care sa le modificati:
hg clone director_vechi director_nou

4. Duplicarea unui repository cu toate modificarile pana la revizia numarul 123:
hg clone -r 123 director_vechi director_nou

5. Vizualizarea fisierelor care nu au fost adaugate in repository:
hg status

6. Actualizarea directorului cu modificarile din repository (dupa pull sau alte asemenea comenzi):
hg update

7. Actualizarea directorului curent cu situatia care exista in revizia 23:
hg up 23

Pe langa acestea mai puteti face push catre un alt repository, gazduit probabil pe un server la distanta, pull pentru a prelua modificarile facute de alti programatori in alt repository, merge pentru a combina modificarile facute in acelasi fisier de doi programatori diferiti, diff-uri pentru a compara diverse revizii, log pentru a vedea o situatie cu toate modificarile si comentariile pentru fiecare dintre ele si multe altele mai complexe dar mai putin folosite.
Bordanc_Nicu
Sergent major
Mesaje: 89
Membru din: 20 Aug 2009, 23:44
Localitate: Timisoara
Contact:

Mesaj de Bordanc_Nicu »

Salutare tuturor! As avea nevoie de un program care sa imi verifice doua fisiere, si sa imi spuna daca, si mai precis unde sunt diferentele de cod din ambele. E vorba de cod php. As dori eventual, si instructiuni de folosire (cu Jaws). Nu stiu daca e topicul potrivit pentru intrebarea mea.
Renunta la ce nu poti pastra, pentru a castiga ce nu poti pierde!!!
IonPop
Colonel
Mesaje: 2166
Membru din: 02 Oct 2010, 17:55

Mesaj de IonPop »

Utilizatorii de Linux au un program numit diff care face exact acest lucru.
Sub Windows exista un program diff.exe care se instaleaza odata cu programul de control al surselor de cot git.
S-ar putea ca diff.exe sa se gaseasca si separat...

Oricum, cel mai simplu este sa cauti "git for windows", sa il instalezi, si sa folosesti programul diff.exe astfel:

diff.exe file1.php file2.php > result.txt

In fisierul result.txt vei avea diferentele intre cele doua programe intr-un format standard care poate fi apoi aplicat fisierului file1.php pentru a se transforma in file2.php.

Evident, cu diff se pot compara orice fel de fisiere text, nu doar cod PHP.

De obicei se foloseste cu parametrul -u pentru a crea asa numitul "Unified diff" care este mai usor de citit si inteles cu ochiul liber:

diff.exe -u file1.php file2.php > result.txt
Bordanc_Nicu
Sergent major
Mesaje: 89
Membru din: 20 Aug 2009, 23:44
Localitate: Timisoara
Contact:

Mesaj de Bordanc_Nicu »

Salutare tuturor! Am facut in dropbox inlocuiri de foldere si fisiere, si as dori o restaurare la o data anterioara a unui singur folder. In acel folder au fost modificate unele fisiere (nu mai stiu exact care), si as dori sa restaurez tot continutul acelui folder. Dupa cate stiu, modificarile se pastreaza timp de 30 de zile, dar de la acea modificare n-au trecut de cat vre-o 2 zile. Dropbox ofera cumva posibilitatea de restaurare a unui intreg folder?
Renunta la ce nu poti pastra, pentru a castiga ce nu poti pierde!!!
Scrie răspuns