Sustav kontrole verzija “jednostavno kao vrata” ili kako naučiti koristiti git u par sati. Stvorite u zadanom imeniku. GIT lokalno pohranjuje potpunu kopiju repozitorija. Subversion čuva povijest promjena na poslužitelju

💖 Sviđa li vam se? Podijelite vezu sa svojim prijateljima

Hajdemo shvatiti," što je sustav kontrole verzija” (VCS), i zašto je to toliko važno. I također, pogledajmo usporedba sustava kontrole verzija.

Sustav kontrole verzija (VCS) je sustav koji vam omogućuje bilježenje promjena datoteke (ili skupa datoteka) tijekom vremena i omogućuje kasniji povratak na određenu verziju. Kontrola verzija može se koristiti za bilo koju vrstu datoteke: izvorni kod softvera, slike, izgled stranice itd.

Distribuirani sustav kontrole verzija

A u nekim slučajevima, ovisno o vrsti problema koji je poslužitelj predstavio, neke verzije datoteka mogu se oštetiti ili izgubiti. Vidjeli smo da u centraliziranom sustavu kontrole verzija imamo problem u kojem su programeri ovisili o poslužitelju, i postojala je potreba za stvaranjem sustava kontrole verzija gdje je svaki programer imao kopiju svega na svom računalu. Tu su nastali distribuirani sustavi kontrole verzija, za razliku od centraliziranih sustava gdje su kopije verzija na serveru, distribuirani sustavi kontrole verzija funkcioniraju tako da klijenti ne rade kopije datoteka za verzije, već i kopije verzija datoteka.

Korištenje VCS-a (VCS) omogućuje vraćanje datoteka u stanje prije promjena, vidjeti tko je posljednji napravio bilo kakve promjene (i kao rezultat uzrokovao problem), i još mnogo toga. Jednostavno rečeno, ako ste nešto prekršili (na primjer, izgubili potrebna datoteka, napravio promjene koje su dovele do pogrešaka), tada možete mirno sve ispraviti.

Drugim riječima, svaki programer ima kopiju svih verzija datoteka, tako da rad ostaje neovisan o poslužitelju i rad se nastavlja čak i ako poslužitelj prestane raditi. Distribuirani sustavi kontrole verzija omogućuju vam rad s različite grupe ljudi dok istovremeno rade na istom projektu.

Kroz ovaj članak vidjeli smo važnost sustava za kontrolu verzija i kako oni mogu poboljšati ukupnu organizaciju i kvalitetu našeg rada, smanjujući raspravu i druge uobičajene probleme između timova. U ovom članku raspravljat ćemo o dostupnim rješenjima za kontrolu verzija, raspravljati o prednostima i nedostacima korištenja sustava za kontrolu verzija te predstaviti primjer korištenja sustava za kontrolu verzija u web projektima. Poteškoće upravljanja, praćenja i sinkronizacije promjena izvornog koda softvera kada je više programera uključeno u projekt je problem koji se ponavlja i ima svoje jedinstvene karakteristike u razvoju web sustava.

Jednostavan primjer korištenja kontrole verzija bilo bi jednostavno kopiranje datoteka u poseban direktorij (moguće čak i s vremenskim žigom). Ovaj pristup je vrlo čest i istovremeno vrlo sklon pogreškama (možete kopirati pogrešne datoteke, izgubiti se u imenicima i napraviti promjene na pogrešnim mjestima). Da biste riješili ovaj problem, koristite lokalne SVC-ove (lokalni SLE) s jednostavnom bazom podataka koja bilježi sve promjene datoteka.

Razvoj softvera se gotovo uvijek radi u timu i kontrolira promjene svakog programera kako bi se postigao integritet izvorni kod softver je stalna potreba. Stoga korištenje alata koji omogućuje višestrukim korisnicima istovremenu promjenu može dovesti do poboljšanog procesa razvoja.

Sustav kolaborativne kontrole verzija je alat za upravljanje kolaborativnim razvojem softvera koji omogućuje timu programera da rade na jednom skupu izvornih datoteka tako da su promjene integrirane i pohranjene u repozitorij koji pohranjuje sve te promjene.

Primjer lokalnog sustava kontrole verzija − R.C.S..

Centralizirani sustav kontrole verzija SVN (Subversion), CVS i Perforce

U interakciji s drugim programerima korištenje lokalnog sustava za kontrolu verzija više nije prikladno. U te svrhe izumljena je nova vrsta SLEcentralizirani sustav kontrole verzija (CSKV). Takvi sustavi imaju jedan poslužitelj koji sadrži sve verzije datoteka, a klijenti primaju te datoteke. Primjeri CSCV-ova su SVN sustav kontrole verzija (Subverzija), CVS I Silom.

Predstavit ćemo studiju slučaja koja pokazuje alate dostupne za ovu integraciju, upotrebu, prednosti i moguća ograničenja ove integracije te što se može poboljšati u alatu koji se koristi. Sustavi kontrole verzija.

Timski rad u softverskom projektu zahtijeva proces upravljanja resursima, ljudima, vremenom, zahtjevima i rezultatima. To se ne razlikuje od izvornog koda softvera koji se razvija ili održava. Iako je ovo još jedan aspekt koji treba pratiti tijekom razvojnog ciklusa, on ima neka upozorenja. Za razliku od ljudi, zahtjeva i potrošnog materijala, izvorni kod softvera prolazi kroz nekoliko promjena svaki dan tijekom procesa razvoja. Ovisno o veličini tima, obujam promjena može doseći tisuće.


Svi programeri CSKV moći će (donekle) saznati što drugi programeri rade. Administratori imaju potpunu kontrolu nad projektom: imaju mogućnost kontrolirati tko što može učiniti.

Unatoč činjenici da centralizirani sustav kontrole verzija pruža brojne prednosti u odnosu na lokalni sustav kontrola verzija, ima ozbiljne nedostatke. Ako poslužitelj prestane raditi na određeno vrijeme, klijenti neće moći koristiti kontrolu verzija za spremanje promjena i dijeljenje tih promjena s drugim klijentima. Ili, ako se podaci na poslužitelju izgube (na primjer, HDD), tada će cijeli projekt biti izgubljen.

Osim što moraju biti velike, te promjene moraju biti reverzibilne i harmonično integrirane te osiguravaju cjelovitost koda. Ručno obavljanje svega toga složen je proces koji je sklon pogreškama i često postaje nemoguć ako je tim raspoređen i prevelik ili je obujam promjena značajan. U tim slučajevima, najvažnije je da se koristi neka vrsta alata koji vam omogućuje automatizaciju ovog upravljanja.

Većina softverskih projekata uključuje različite programere koji rade istovremeno u različitim grupama datoteka tijekom dugog vremenskog razdoblja, stoga je važno da se sve promjene koje su napravili različiti programeri spremaju i prate, kao evidencija o tome tko je napravio što i kada. Identificiranje osobe odgovorne za promjenu omogućuje pripisivanje odgovornosti kao i izravnu vezu u slučaju sumnje u sebe. Važnije od kontrole tko je što učinio mogao integrirati različite modifikacije u jedan rezultat je da je suradnja učinkovito konstruktivna prema zajedničkom krajnjem rezultatu, a ne paralelnim nepotpunim rezultatima.

Decentralizirani sustav kontrole verzija Git, Mercurial, Bazaar, Darcs

Da biste riješili problem centraliziranih SVN-ova, koristite drugu vrstu SLE. Decentralizirani VCS (DSKV)- klijenti kopiraju cijeli repozitorij, umjesto da jednostavno preuzmu snimku svih datoteka (stanje datoteka u određenom trenutku). U tom slučaju, ako poslužitelj zakaže, repozitorij klijenta može se kopirati na drugi, radni poslužitelj, jer je taj repozitorij potpuna sigurnosna kopija svih podataka.

Glavne funkcije sustava za kontrolu verzija su očuvanje povijesti i odgovarajućeg stanja promjena napravljenih na datotekama tijekom vremena, te integracija doprinosa različitih programera koji rade na projektu. Ova studija slučaja provedena je tijekom razvoja sustava za upravljanje sadržajem za velikog privatnog klijenta. U razvoju ovog projekta sudjelovalo je petero ljudi, uključujući analitičare, voditelja tima, programere aplikacija koji rade na poslužitelju te programere za interakciju s front-endom i preglednikom.

Postoji mnogo sustava za kontrolu verzija datoteka. Koji je bolji? Što odabrati - GIT ili Subversion?

Svaki se programer prije ili kasnije susreće s potrebom praćenja promjena u projektnim datotekama softvera i dolazi do izbora sustava kontrole verzija.

Za ovaj projekt analizirali smo neke sustave kontrole verzija koji bi se mogli koristiti. Koncepti lokalnog i udaljenog repozitorija i širok raspon značajki putem naredbeni redak donijeti vrlo korisne resurse timu, ali za dionike i predmetni projekt potrebno je dublje razumijevanje procesa kontrole verzija, trebamo brza odluka, što bi zahtijevalo minimalnu komandnu razinu. Slika 2 prikazuje početni ekran aplikacije instalirane na poslužitelju.

Gotovo da nisu potrebni nikakvi dodatni koraci osim instalacije čarobnjaka. I dodatak i poslužitelj za kontrolu verzija razvila je ista tvrtka, a to je bio faktor u postizanju besprijekorne integracije. Obično se u procesu razvoja softvera susrećemo s nekim problemima kao što su pohranjivanje verzija i dijeljenje izvornog koda među više programera. Još uvijek je moguće pronaći male tvrtke ili timove s malo zrelosti koji koriste "kontrolu verzija" kroz ručni proces i dijeljenje mrežne mape.

Sustave za kontrolu verzija ne koriste samo programeri. Zapravo, bit će korisni svima koji se žele vratiti i pregledati više ranija verzija dokument ili datoteka koja je izmijenjena. U biti, popularni Dropbox je sustav za kontrolu verzija datoteka.

U ovom ću članku navesti glavne razlike između sustava upravljanja GIT verzije od konzervativnije i mnogima poznate Subverzije.

Ova praksa uključuje mnogo uzaludnog rada, posebno kada više programera radi na istom projektu, a nepraktična je zbog visokog stupnja složenosti u klasifikaciji verzija i konfuzije u definiciji Trenutna verzija, kao i u integraciji verzije ako imate pristup istoj datoteci.

Uz kontrolu verzija, ove aktivnosti izrade verzija su automatizirane i osnovne naredbe dostupne su za postupak izrade verzija u dodatku. Ova naredba se koristi kada počnete koristiti verziju za aplikaciju.

GIT lokalno pohranjuje potpunu kopiju repozitorija. Subversion čuva povijest promjena na poslužitelju

U Subverziji, spremište je pohranjeno na poslužitelju - samo su najnovije verzije datoteka pohranjene na računalu. GIT sprema na vaše računalo Puna verzija cijelu povijest promjena.

Ova razlika iz temelja mijenja sposobnost rada s dokumentima.

Može se koristiti za oboje postojeće aplikacije, te za aplikacije čiji razvoj počinje. Ažuriranje: programerima s pristupom repozitoriju omogućuje učitavanje Najnovija verzija aplikacija koja se razvija, kao što je prikazano na slici 3 u istaknutom elementu broj 1 i na slici 4 u istaknutom elementu broj.




Ova se radnja izvodi pomoću naredbe za otključavanje, kao što je prikazano na slici 4 pod istaknutom stavkom broj 6. Prikaži povijest: Omogućuje programerima provjeru povijesti promjena datoteke ili mape. Ova povijest pokazuje promjene napravljene tijekom vremena, prikazujući autora, tekstualnu poruku koju je autor poslao prilikom predaje, datum i brojčani ID revizije. Za svaku navedenu stavku mogu se vidjeti detaljnije informacije o toj izmjeni, koje će prikazati linearne promjene koje su izmijenjene, kao što je prikazano na slici 4 u označenoj stavci broj 5.

Ne morate imati pristup poslužitelju da biste spremili izmijenjenu datoteku u kontrolu verzija

Sustav kontrole verzija omogućuje vam da usporedite i vratite samo one promjene koje su u njemu spremljene. Subverzija zahtijeva mrežni pristup poslužitelju za spremanje (predavanje) modificirane datoteke u repozitorij. GIT može spremiti novu verziju datoteke u bilo kojem trenutku.

Moguće je da je projekt verziran, ali postoje datoteke koje su dio projekta koje nisu uključene u proces verziranja. Ova mogućnost postoji jer možda postoje neke datoteke koje nisu potrebne ili se ne mogu verzionirati i stoga nisu uključene u verzioniranje. Tijekom procesa ažuriranja ili potvrde, možete otkriti da su istu datoteku izmijenili različiti programeri.

O razvojnom programeru ovisi hoće li njegova kopija ili verzija nekog drugog programera biti zadržana kao glavna kopija. Nezaobilazan alat u modernom razvoju softvera je neka vrsta sustava za kontrolu verzija. Sustavi kontrole verzija omogućuju vam praćenje vaših softver na početnoj razini. Možete pratiti promjene, vratiti se na prethodne korake i granati kako biste stvorili alternativne verzije datoteka i direktorija.

Lokalne datoteke čine GIT bržim

To je istina—za većinu stvari koje ćete raditi, GIT će biti brži jer se sve događa lokalno na vašem računalu. Naravno, kada gurnete promjene u repozitorij na udaljeni poslužitelj, ovo će potrajati. (A držanje sustava kontrole verzija samo na vašem računalu nije baš mudro - pogotovo ako imate besplatni hosting za sustave kontrole verzija). Ali upisivanje novih verzija datoteka, usporedba i pregled promjena događaju se gotovo trenutno.

Pogledajmo kako instalirati softver u dva različiti putevi, od kojih svaki ima svoje prednosti. Ovaj vodič pretpostavlja da ste prijavljeni kao jedan, a ovdje možete naučiti kako izraditi. Ovo je najviše brz način, ali verzija može biti starija od najnovije verzije. Nakon toga možete preuzeti i instalirati program. I dalje morate slijediti korake postavljanja koje smo opisali u odjeljku Postavljanje, pa to za sada slobodno preskočite.

To traje duže i neće biti podržano putem upravitelja paketa, ali će vam omogućiti preuzimanje najnovije verzije i dati vam određenu kontrolu nad opcijama koje uključujete ako želite prilagoditi. Ovo je dostupno u zadanim spremištima tako da možemo ažurirati naš lokalni indeks paketa i zatim instalirati pakete. Verzija koju vidite kada dođete na stranicu projekta je grana na kojoj se aktivno radi.

GIT pohranjuje "grumenčiće" datoteka u komprimiranom obliku. Subversion pohranjuje promjene u datoteke

Ovo je temeljna razlika za korisnika - jer je dobiveni rezultat identičan.

GIT osigurava integritet datoteke

Za sve datoteke koje se spremaju u kontrolu verzija, GIT koristi SHA1 hash. U praksi, to eliminira mogućnost promjene datoteke, a da sustav kontrole verzija to ne primijeti.

Raspakirajte preuzetu datoteku i dođite do rezultirajućeg direktorija upisivanjem. Sada možete kompajlirati paket i instalirati ga unosom sljedeće dvije naredbe. Ovo će stvoriti novi direktorij u vašem trenutnom direktoriju gdje možete ponovno kompajlirati paket i ponovno instalirati Najnovija verzija kao što ste učinili gore. To će uzrokovati prepisivanje stara verzija s novom verzijom.

Možemo nastaviti i dodati ove informacije upisivanjem. Možemo vidjeti sve konfiguracijske stavke koje su definirane unosom. Kao što vidite, ovo ima nešto drugačiji format. Informacije su pohranjene u konfiguracijskoj datoteci koju možete ručno uređivati uređivač teksta na sljedeći način.

Vrlo je teško izgubiti podatke s GIT-om

Budući da su sve promjene zapravo spremljene na vašem računalu, a sve promjene GIT zapravo samo dodaje u repozitorij, vrlo je teško bilo što izgubiti. Ako ste spremili izmijenjenu datoteku u repozitorij, uvijek je možete vratiti Trenutna država. A ako ste spremili repozitorij na udaljeni poslužitelj pomoću naredbe git push, tada se vjerojatnost gubitka datoteke približava nuli.

Iskreno, GIT mi se jako svidio. Korištenje ovog sustava uklanja neka ograničenja koja je teško implementirati korištenjem Subverzije. Na primjer, pohranjivanje jednog repozitorija na različite poslužitelje je moguće, ali je teško implementirati, au GIT-u je to standardna funkcionalnost. S druge strane, korištenje Subverisona može biti lakše u nekim situacijama. A bilo koji sustav kontrole verzija je vrlo značajan napredak u odnosu na sustav bez kontrole verzija.



reci prijateljima
Pročitajte također