Urmărirea versiunii cu Subversion (SVN) pentru începători
V-ați dorit vreodată să lucrați la un proiect cu abilitatea de a urmări modificările dvs., precum și de a le reveni? How-To Geek explică Cum-Pentru a utiliza versiunea populară de urmărire a sistemului, Subversion (a.k.a SVN).
Image by Clearly Ambiguous
Prelog
Acest ghid vă va oferi posibilitatea de a utiliza clientul de subversiune în general și, dacă aveți unul, pe routerul * DD-WRT. Acest ghid nu este în nici un caz un ghid definitiv pentru Subversion și o mulțime de informații pot fi găsite pe Cartea Roșie Subversion. Acest ghid este destinat doar să vă ofere răspunsul succint la întrebările cele mai de bază.
Prezentare generală
S-ar putea să existe numeroase motive pentru care doriți să puteți "verifica" ultimul cod pentru un proiect software care utilizează un sistem de versiuni. Acest lucru vă permite să beneficiați de cele mai recente modificări încă nelansate, de a ajuta la testarea și chiar la dezvoltare. În acest ghid, vom trece peste câteva terminologii SVN de bază, arătați cum să instalați clientul SVN pe Linux, Windows și dacă aveți unul din routerul DD-WRT cu OPKG activat. Am inclus, de asemenea, un exemplu de proiect pe care îl puteți finaliza și utiliza pentru ruterul respectiv.
Ce este Subversiunea?
Subversiunea nu este singurul sistem de control al versiunilor existente, iar alternativele includ Git (care a fost creat de Linus Torvalds fondatorul kernel-ului Linux), Mercurial și PerForce pentru a numi câteva. Cu ceea ce a spus, este unul dintre cei liberi, este matur și este folosit pe scară largă la nivel mondial.
Din subversiunea "Cartea Roșie":
Subversiunea este o sursă liberă / deschisă sistem de control al versiunilor (VCS). Adică, Subversion gestionează fișierele și directoarele și modificările aduse acestora în timp. Aceasta vă permite să recuperați versiunile mai vechi ale datelor sau să examinați istoricul schimbării datelor. În acest sens, mulți oameni cred că un sistem de control al versiunii este un fel de "mașină de timp".
Notă: Această carte este colecția finală de cunoștințe despre subversiune și vă recomandăm să vă referiți la aceasta în toate subiectele legate de Subversiune.
Ce este versiunea?
Versiunea este un proces în care starea unui proiect la un moment dat este salvată. Acest tip de procedură este adesea folosit pentru a gestiona dezvoltarea de software, astfel încât munca poate continua să îmbunătățească proiectul sau să adauge caracteristici, în timp ce este capabil să urmărească ceea ce sa schimbat de la ultimul punct global de salvare. Pentru a elabora, acest tip de procedură poate fi utilă pentru o singură persoană, dar cu atât mai mult pentru un grup de oameni, toți care lucrează la același proiect. Acest lucru se datorează faptului că, de obicei, când se lucrează la un proiect ca grup, există o repartizare a responsabilităților, iar diferite persoane schimbă diferite aspecte ale proiectului. Fără un mecanism de versiune, ar fi foarte dificil să ținem pe toată lumea în sincronizare cu privire la cele mai recente schimbări de lucru de la oricine altcineva.
Terminologie
Depozitul
Depozitarul este locul unde sunt salvate toate datele din toate locurile diferite. În lumea de subversiune, din punctul de vedere al clientului, serverul deține baza de date a proiectului. Această bază de date conține toate fișierele care fac parte din proiect cu toate versiunile anterioare.
Revizuire
Atunci când este creat un depozit, acesta are numărul de revizuire de zero (0). Acest număr este incrementat cu un (1) de fiecare dată când se efectuează o comitere. Numărul reviziei este global pentru depozit. Asta înseamnă că nu există nici un număr individual de revizie pentru fișierele individuale din depozit, chiar dacă nimic nu sa schimbat în acel fișier pentru acea comitere specifică.
Copia de lucru
O copie de lucru este o copie (sau "checkout") locală a unei anumite versiuni. De obicei, această versiune atunci când este check-out este cea mai recentă (numită și "cap"), dar poate fi solicitată o versiune anterioară. Utilizatorul poate face cu copia locală orice persoană pe care o dorește, știind că, în cel mai rău caz, ar putea să-și verifice din nou codul. În plus, această copie este "privată". Acest lucru se datorează faptului că până când vă actualizați sau comiteți copia dvs., nu veți vedea schimbările altor persoane și nici nu vă vor vedea pe dvs..
Actualizarea și rezolvarea conflictelor
O copie de lucru locală poate fi actualizată. Asta este, dacă ați "verificat" o anumită versiune și în timp ce lucrați, versiunea din depozit a fost actualizată, vă puteți actualiza copia de lucru la cel mai recent. De fapt, serverul vă va împiedica să efectuați modificările înainte de a vă actualiza la cea mai recentă versiune pentru a se potrivi cu depozitul. Acest lucru este făcut pentru a vă forța să rezolvați conflictele la nivel local, înainte de a vă gândi chiar să faceți schimbări în depozit.
fuzionarea
Îmbinarea se referă la procesul prin care codul modificat este amestecat într-o singură versiune. Aceasta poate implica și rezolvarea conflictelor.
încredințarile
Angajarea este procesul în care modificările pe care le-ați făcut în copia dvs. locală vor fi reunite înapoi în depozit. Aceasta este partea cea mai periculoasă a procesului, deoarece aici sunt schimbările pe care le-ați făcut, ar putea avea impact asupra altor persoane care folosesc același depozit. De aceea, acest lucru se face, de obicei, după o anumită examinare, cu consensul echipei și după ce ați rezolvat conflictele care au fuzionat.
Fluxul de lucru
Fluxul de lucru cel mai de bază din perspectiva utilizatorului în utilizarea subversiunii este următorul:
1. Verificați codul existent (de obicei "capul").
2. Faceți modificări, adăugați fișiere și, în general, dezvoltați codul.
3. Actualizați la cea mai recentă versiune, pentru a vă asigura că copia dvs. locală se sincronizează cu actualizările din depozit.
4. Combinați local și rezolvați conflictele, dacă este necesar.
5. Comutați modificările fuzionate în depozit.
6. GoTo pasul 2.
Permiteți-vă să crăpați
Instalați Clientul
Pentru a putea utiliza subversiunea, trebuie să instalați clientul pe aparat.
Pe Linux
Trebuie doar să instalați pachetul. Pe Ubuntu / Mint, acest lucru se va face cu:
sudo aptitude install subversion
Pe DD-WRT
Dacă ați urmat "Cum se instalează software suplimentar pe routerul dvs. de acasă (DD-WRT)", puteți instala clientul svn prin emiterea următoarelor:
opkg update; opkg instalează subversiunea-client
Pe Windows
În timp ce utilizatorii profund geek poate începe să uite că GUI chiar există uneori, nu toată lumea are. Dacă doriți să utilizați un client Windows pentru a vă conecta la un depozit SVN, de departe cel mai popular este "Tortoise". Pentru a-l folosi, pur și simplu descărcați programul și instalați-l în modul obișnuit "next, next, finish".
Creați "depozitul"
În timp ce nu vom trece în detaliu cu privire la modul de configurare a unui server de subversiune în acest ghid, alternativa Google nu este un început prost pentru noul utilizator. Pentru a crea un depozit Google:
- Mergeți pe site-ul Web de găzduire a codului Google și creați un nou proiect.
- În pagina următoare, completați câmpurile obligatorii și selectați tipul de "sistem de control al versiunii" pentru a fi subversiune.
Notă: este posibil să doriți să aruncați o privire asupra diferenței dintre ofertele de licențe Google, înainte de a selecta una pentru proiect. - Faceți clic pe "Creați proiectul".
Odată ce proiectul a fost creat, ar trebui să puteți găsi instrucțiunile despre cum să îl accesați în fila "Sursă".
Lucrul frumos despre codul Google este că va permite o versiune anonimă numai pentru citire pentru proiectul dvs. Dacă nu doriți să faceți față problemelor legate de crearea propriului proiect, puteți anonim să efectuați o verificare anonimă a repozitorului acestui scriitor.
O notă despre proiectul hotfortech: Acest proiect este menit să fie un pachet pentru caracteristicile care au fost adăugate la DD-WRT pe How-To Geek (pe care le folosesc personal), plus câteva corecții personale. În timp ce acest proiect este destinat să funcționeze împreună cu articolele publicate aici despre howtogeek, acesta este încă proiectul meu privat. Adică, este foarte potrivit pentru routerul meu Buffalo (arhitectura AR71xx), capriciile mele personale și este predispus la ocazional borkage.
Pe Linux / DD-WRT
Creați un director în care să lucrați, de exemplu pe DD-WRT, care ar putea fi:
mkdir -p / jffs / svn; cd / jffs / svn
Comanda completă pe Linux constă din comanda SVN în sine, direcția "checkout", adresa depozitului și directorul la checkout. Creați un director gol și executați comanda de mai jos:
svn checkout http://hotfortech-dd-wrt.googlecode.com/svn/trunk/ hotfortech-dd-wrt-numai-citit
Rețineți că în exemplul de mai sus, versiunea read-only este verificată. Dacă ați optat pentru crearea unui depozit propriu, va trebui să utilizați linkul httpS.
Pe Windows
Deoarece broasca testoasa este o extensie a shell-ului, va trebui sa folositi meniul contextual al Explorer-ului de fisiere Windows (click-dreapta) pentru ao folosi. De fapt, dacă încercați să o invocați din meniul de pornire, veți obține:
- Creați un director gol.
- Faceți clic dreapta pe el pentru a afișa meniul contextual.
- Selectați "SVN Checkout":
- Copiați și inserați linkul pentru proiect (dacă aveți unul) în caseta de text "URL":
- În funcție de dimensiunea proiectului, acest lucru poate dura ceva timp, dar când "Checkout" a fost finalizat, ar trebui să vedeți ceva de genul:
- Puteți începe să vă dezvoltați.
"Actualizare" și "Mergeți" copia de lucru
Dacă lucrați la codul cu colegii sau dacă vă actualizați codul din mai multe locații (de ex. Laptop, desktop sau chiar router), va trebui să vă actualizați copia de lucru înainte de a vă angaja ultimele modificări.
Pe Linux / DD-WRT
Comanda pentru a face acest lucru pe aceste sisteme POSIX este pur și simplu:
svn up
Pe Windows
- Faceți clic dreapta în directorul de lucru și selectați "SVN Update":
- Dacă întâmpinați conflicte, încercați să urmați instrucțiunile de pe ecran și să utilizați judecata dvs. cu privire la ce să faceți despre ele.
"Commit" schimbările tale
Asta este, ar trebui să fii liber și să fii gata să actualizezi depozitul cu modificările tale.
Singurul lucru pe care trebuie să-l observăm aici este că este o practică obișnuită să adăugați un mesaj "log" comitetului, pentru a putea reaminti cu ușurință de ce au fost făcute schimbările. De fapt, depozitul Google face ca această obligație prealabilă obligatorie să se angajeze.
Pe Linux / DD-WRT
Acesta este un exemplu al comitetului pe care l-am făcut la proiectul hotfortech care la îmbunătățit până la versiunea 19:
svn commit -m "actualizată pentru a reflecta noul pachet ant-ads pack"
Pe Windows
- Faceți clic dreapta în directorul de lucru și selectați "SVN Commit":
- Ar trebui să fiți întâmpinați de o fereastră care vă permite să notați un mesaj de jurnal:
- Apăsați OK și când vi se solicită o parolă, dați parola generată de Google.
- Dacă comitetul a avut succes, ar trebui să vedeți ceva de genul:
- Asta e, ar trebui să fii capabil să te comporți ca un BOSS.
Observații finale
Ar trebui să fie suficient pentru a începe. Vă recomandăm să citiți cărțile de referință SVN pentru a obține o înțelegere mai profundă și mai bună a tuturor utilizărilor, opțiunilor și avertismentelor SVN. De asemenea, vă reamintim (din nou) că subversiunea nu este singurul sistem de control al versiunilor acolo și GIT (care a fost creat de Linus Torvalds fondatorul kernel-ului Linux) pare să câștige popularitate în ultimii ani.
Dacă veți opta să rulați "running-config.sh" din proiectul hotfortech de pe router, veți găsi că acesta va instala în prezent pentru dvs.: pachetul anti-ads, scriptul Opkg geek-init, precum și lucruri precum GNU complet "ls", "mai puțin", "BASH" și multe altele.
/jffs/svn/hotfortech-dd-wrt/running-conf.sh
Mai multe caracteristici sunt în așteptare și vor fi adăugate în viitor.
Administratorii de sistem își vor codifica calea de ieșire din codificare.