If-Koubou

Urmărirea versiunii cu subversiune (SVN) pentru începători

Urmărirea versiunii cu subversiune (SVN) pentru începători (Cum să)

Ați vrut vreodată să lucrați la un proiect cu abilitatea de a urmări modificările dvs. și de a le reveni? How-To Geek explică Cum-Pentru a utiliza versiunea populară sistem de urmărire, 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 numai să vă ofere un răspuns 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 schimbări încă nelansate, de a ajuta la testare și chiar la dezvoltare. În acest ghid, vom trece peste câteva terminologii SVN de bază, vom arăta cum să instalați clientul SVN pe Linux, Windows și dacă aveți unul dintre 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 Subversion?

Subversiunea nu este în niciun caz 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, acesta 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. Acest lucru vă permite să recuperați versiunile mai vechi ale datelor sau să examinați istoricul modului în care datele dvs. s-au schimbat. În acest sens, mulți oameni se gândesc la un sistem de control al versiunii ca pe 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 software-ului, astfel încât munca poate continua să îmbunătățească proiectul sau să adauge caracteristici, în timp ce poate urmări 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 cei 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 versiuni, ar fi foarte dificil să țineți pe toată lumea în sincronizare cu privire la cele mai recente schimbări de lucru de la oricine altcineva.

Terminologie

Depozitul
Depozitarul este locația unde sunt salvate toate datele din toate locurile diferite. În lumea subversiunii, 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 lor anterioare.

Revizuire

Atunci când un depozit este creat, acesta are numărul reviziei 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. Adică nu există un număr individual de revizie pentru fișierele individuale din depozit, chiar dacă în acel fișier nu s-au schimbat nimic pentru comiterea respectivă.

Copia de lucru

O copie de lucru este o copie locală (sau "checkout") a unei anumite versiuni. De obicei, această versiune 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, s-ar putea să termine 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 modifică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ă, puteți să vă actualizați 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 cea mai periculoasă parte a procesului, deoarece aici se întâmplă că schimbările pe care le-ați făcut pot afecta și alte 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 ultima versiune, pentru a vă asigura că copia dvs. locală este sincronizată cu actualizările din depozit.
4. Combinați local și rezolvați conflictele, dacă este necesar.
5.Acționaț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-ul suplimentar pe router-ul dvs. de acasă (DD-WRT)", puteți instala clientul svn emiteți pur și simplu:

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 ao 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 despre cum să configurați un server de subversiune în acest ghid, alternativa Google nu este un început prost pentru utilizatorul novice. Pentru a crea un depozit Google:

  • Deplasați-vă la 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ă: poate doriți să aruncați o privire asupra diferenței dintre ofertele de licențe Google, înainte de a le selecta pentru proiect.
  • Faceți clic pe "Creați proiect".
"Verificați" copia de lucru

Odată ce proiectul dvs. 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ă vă ocupați de dificultatea de a crea propriul proiect, puteți efectua anonim checkout-ul acestui depozit al scriitorului.

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 Buffalo (arhitectura AR71xx), capriciile mele personale și este predispus la ocazional.

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-doar pentru citire

Rețineți că în exemplul de mai sus, versiunea numai pentru citire este verificată. Dacă ați ales să creați un 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:
  • S-ar putea să începeți 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 (adică 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 sus

Pe Windows

  • Faceți clic dreapta în directorul de lucru și selectați "Actualizare SVN":
  • Dacă întâmpinați conflicte, încercați să urmați instrucțiunile de pe ecran și să vă decideți ce să faceți despre ele.

"Comit" schimbările tale
Asta este, ar trebui să fii liber de conflicte și să fiți gata să actualizați depozitul cu modificările dvs.
Unul dintre aspectele pe care trebuie să le menționăm aici este faptul că este o practică obișnuită să adăugați un mesaj "log" la comitet, pentru a putea reaminti cu ușurință de ce s-au făcut modificările. De fapt, depozitul Google face ca aceasta să fie o obligație prealabilă obligatorie de a se angaja.

Pe Linux / DD-WRT

Acesta este un exemplu al comitetului pe care l-am făcut la proiectul hotfortech care la îmbunătățit 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 înțelege mai profund și mai bine toate utilizările, opțiunile și avertismentele 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 cod.