Praćenje inačice verzijama sa subverzijom (SVN) za početnike
Jeste li ikada željeli raditi na projektu s mogućnošću da pratite vaše promjene kao i da ih vratite? Kako objasniti Kako koristiti moderan sustav praćenja verzija, Subversion (a.k.a SVN).
Slika po jasno nejasnoj
Prelog
Ovaj vodič će vam dati mogućnost korištenja klijenta subverzije općenito, a ako ga imate, na vašem * DD-WRT usmjerivaču. Ovaj vodič nipošto nije konačni vodič za Subverziju, a mnogo informacija može se naći u Crvenoj knjizi Subverzije. Ovaj vodič služi samo kao kratki odgovor na najosnovnija pitanja.
Pregled
Mogu postojati brojni razlozi zbog kojih biste htjeli „provjeriti“ najnoviji kôd za softverski projekt koji koristi sustav za upravljanje verzijama. Na taj način možete imati koristi od najnovijih, još neobjavljenih promjena, pomoći u testiranju i čak razvoju. U ovom ćemo vodiču pregledati neke osnovne SVN terminologije, pokazati kako instalirati SVN klijent na Linuxu, Windows i ako imate jedan vaš OPKG DD-WRT usmjerivač. Također smo uključili primjer projekta koji možete naručiti i koristiti za navedeni usmjerivač.
Što je Subversion?
Subverzija nipošto nije jedini sustav kontrole verzija koji postoji, a alternative uključuju Git (koji je stvorio Linus Torvalds, osnivač Linux kernela), Mercurial i PerForce. S tim rečeno, to je jedan od slobodnih, zreo je i široko se koristi širom svijeta.
Iz Subverzije "Crvena knjiga":
Subverzija je slobodan / otvoren izvor sustav kontrole verzija (VCS). To znači da Subversion s vremenom upravlja datotekama i direktorijima i promjenama koje su na njima napravljene. To vam omogućuje da obnovite starije verzije svojih podataka ili pregledate povijest promjene podataka. S tim u vezi, mnogi ljudi misle o sustavu kontrole verzija kao o nekoj vrsti "vremenskog stroja".
Napomena: Ova knjiga je konačno prikupljanje znanja o subverziji i preporuča se da se pozovete na sve teme vezane uz Subverziju.
Što je verzija?
Verzija je proces u kojem se stanje projekta u određenom trenutku sprema. Ova vrsta postupka često se koristi za upravljanje razvojem softvera, tako da posao može nastaviti poboljšavati projekt ili dodavati značajke, dok je u mogućnosti pratiti što se promijenilo od zadnje ukupne točke "spremanja". Da razradimo, ova vrsta postupka može biti korisna za jednu osobu, ali još više za grupu ljudi, koji svi rade na istom projektu. To je zbog toga što obično, kada radimo na projektu kao grupa, postoji raspodjela odgovornosti i različiti ljudi mijenjaju različite aspekte projekta. Bez mehanizma za upravljanje verzijama bilo bi vrlo teško sve vas sinkronizirati s najnovijim radnim promjenama od svih ostalih.
Terminologija
Repozitorij
Spremište je mjesto gdje se spremaju svi podaci iz svih različitih mjesta. U svijetu subverzije, sa stajališta klijenta, to je poslužitelj koji drži bazu podataka projekta. Ova baza podataka sadrži sve datoteke koje su dio projekta sa svim njihovim prošlim verzijama.
Revizija
Kada se kreira spremište, daje se broj revizije nula (0). Taj broj se povećava za jedan (1) svaki put kada se izvrši urezivanje. Broj revizije je globalni za spremište. To znači da ne postoji pojedinačni broj revizije za pojedinačne datoteke u spremištu, čak i ako se ništa ne mijenja u toj datoteci za tu određenu predaju.
Radna kopija
Radna kopija je lokalna kopija (ili "checkout") određene verzije. Obično je ova verzija, kada je odjavljena, "najnovija" (također se naziva "glava"), ali se može zatražiti i prethodna. Korisnik može učiniti s lokalnom kopijom sve što želi, uz znanje da, u najgorem slučaju, oni mogu samo ponovno naručiti kod. Štoviše, ova kopija je "privatna". To je zato što dok ne ažurirate ili urezujete vašu kopiju, nećete vidjeti promjene drugih ljudi, niti ćete vidjeti vaše.
Ažuriranje i rješavanje sukoba
Lokalna radna kopija može se ažurirati. To jest, ako ste "odjavili" određenu verziju i dok ste radili, verzija na spremištu je ažurirana, možete ažurirati svoju radnu kopiju na najnoviju. Zapravo, poslužitelj će vas spriječiti da izvršite promjene prije ažuriranja na najnoviju verziju kako bi odgovarao spremištu. To je učinjeno kako bi vas prisilili da lokalno riješite sukobe, prije nego što čak i pomislite da izvršite promjene u spremištu.
stapanje
Spajanje se odnosi na proces kojim se izmijenjeni kod miješa u jednu verziju. To može značiti i rješavanje sukoba.
obvezuje
Urezivanje je proces u kojem će se promjene koje ste napravili na lokalnoj kopiji spojiti natrag u spremište. To je najopasniji dio procesa, budući da ovdje promjene mogu utjecati na druge osobe koje koriste isto spremište. Zato se to obično radi nakon nekog razmatranja, konsenzusa tima i nakon što ste riješili sukobe spajanja.
Tijek rada
Najosnovniji tijek rada iz perspektive korisnika kada se koristi subverzija je sljedeći:
1. Provjerite postojeći kôd (obično "glava").
2. Napravite promjene, dodajte datoteke i općenito razvijete kod.
3. Ažurirajte na najnoviju verziju kako biste provjerili je li lokalna kopija sinkronizirana s ažuriranjima u spremištu.
4. Lokalno spajanje i rješavanje sukoba ako je potrebno.
5. Obavite združene promjene u spremište.
6. Idite na korak 2.
Omogućujemo pucanje
Instalirajte klijenta
Da biste mogli koristiti subverziju, trebate instalirati klijent na vašem računalu.
Na Linuxu
Trebate samo instalirati paket. Na Ubuntu / Mintu, to bi se učinilo s:
sudo aptitude instalira subverziju
Na DD-WRT
Ako ste slijedili "Kako instalirati dodatni softver na vaš kućni usmjerivač (DD-WRT)", moći ćete instalirati svn klijent jednostavnim izdavanjem:
opkg ažuriranje; opkg instalira subversion-klijent
U sustavu Windows
Iako smo duboko geek korisnici svibanj početi zaboraviti da je čak i GUI postoji, a ne svatko ima. Ako želite koristiti Windows klijent za povezivanje s SVN spremištem, daleko najpopularniji je "Tortoise". Da biste ga koristili, jednostavno preuzmite program i instalirajte ga na uobičajeni način “next, next, finish”.
Stvorite "spremište"
Iako nećemo ulaziti u detalje o tome kako u ovom vodiču postaviti poslužitelj subverzije, Googleova alternativa nije loš početak za početničkog korisnika. Da biste izradili Google spremište:
- Odite na web-lokaciju za hosting Google koda i "stvorite" novi projekt.
- Na sljedećoj stranici ispunite obavezna polja i odaberite vrstu sustava za kontrolu verzije koji će biti subverzija.
Napomena: Prije nego što odaberete jedan za projekt, možda ćete htjeti pogledati koja je razlika između licenci koje Google nudi. - Kliknite "Izradi projekt".
Nakon što je projekt kreiran, trebali biste moći pronaći upute o tome kako mu pristupiti na kartici "Izvor".
Dobra stvar kod Google koda je to što će omogućiti anonimnu verziju samo za čitanje za vaš projekt. Ako se ne želite baviti problemom stvaranja vlastitog projekta, možete anonimno pregledati spremište ovog pisca.
Jedna napomena o hotfortech projektu: Ovaj projekt je zamišljen kao omot za značajke koje su dodane DD-WRT-u na How-To Geek (koji osobno koristim) plus neke osobne izmjene. Iako je ovaj projekt usmjeren na rad u vezi s člancima objavljenim ovdje na howtogeek, to je još uvijek moj privatni projekt. To znači da je vrlo pogodan za moj Buffalo usmjerivač (AR71xx arhitektura), moje osobne hirove i sklon sam povremenom borkageu..
Na Linux / DD-WRT
Stvorite direktorij u kojem ćete raditi, na primjer na DD-WRT, koji može biti:
mkdir -p / jffs / svn; cd / jffs / svn
Potpuna naredba na Linuxu sastoji se od same naredbe SVN, "checkout" direktive, adrese spremišta i direktorija za preuzimanje. Izradite prazan direktorij i izvršite naredbu u nastavku:
svn checkout http://hotfortech-dd-wrt.googlecode.com/svn/trunk/ hotfortech-dd-wrt-samo za čitanje
Imajte na umu da se u gornjem primjeru verzija za samo za čitanje odjavljuje. Ako ste odlučili stvoriti vlastito spremište, morat ćete koristiti httpS vezu.
U sustavu Windows
Budući da je kornjača proširenje ljuske, morat ćete koristiti kontekstni izbornik Windows Explorera (desni klik) da biste ga koristili. Zapravo, ako ga pokušate pozvati iz početnog izbornika, dobit ćete:
- Stvorite prazan direktorij.
- Desnom tipkom miša kliknite na njega da biste otvorili kontekstni izbornik.
- Odaberite "SVN Checkout":
- Kopirajte i zalijepite vezu za projekt (ako ga imate) u tekstualni okvir "URL":
- Ovisno o veličini projekta to može potrajati, ali kada je "Checkout" dovršen, trebali biste vidjeti nešto poput:
- Možete početi razvijati.
“Ažuriraj” i “Spoji” vašu radnu kopiju
Ako radite na kodu s kolegama ili vi sami ažurirate kôd s nekoliko lokacija (npr. Prijenosno računalo, stolno računalo ili čak usmjerivač), morat ćete ažurirati svoju radnu kopiju prije nego što uvrstite najnovije izmjene.
Na Linux / DD-WRT
Naredba za to na ovim POSIX sustavima je jednostavno:
svn up
U sustavu Windows
- Kliknite desnom tipkom miša na radni direktorij i odaberite "SVN Update":
- Ako naiđete na sukobe, pokušajte slijediti upute na zaslonu i upotrijebite svoje prosudbe o tome što učiniti s njima.
"Obavi" svoje promjene
To je to, trebali biste biti slobodni od konflikta i spremni ažurirati spremište promjenama.
Ovdje valja napomenuti da je uobičajena praksa dodavati poruku "zapisnik" u urezivanje, kako bi se lako mogli sjetiti zašto su promjene napravljene. Zapravo, Googleovo spremište čini ovo obaveznim preduvjetom za izvršenje.
Na Linux / DD-WRT
Ovo je primjer urezivanja koje sam napravio za hotfortech projekt koji ga je povećao na verziju 19:
svn commit -m "ažurirano kako bi odražavalo novu vezu ant-ads pack"
U sustavu Windows
- Desni klik na radni direktorij i odaberite "SVN Commit":
- Trebali biste vas pozdraviti u prozoru koji vam omogućuje da zabilježite poruku dnevnika:
- Pritisnite OK i kada se zatraži lozinka, dajte zaporku koju je generirao Google.
- Ako je urezivanje bilo uspješno, trebali biste vidjeti nešto poput:
- To je to, trebali biste biti u stanju počiniti kao BOSS.
Završne napomene
To bi trebalo biti dovoljno za početak. Preporučujemo vam da pročitate SVN referentne knjige kako biste dobili dublje i bolje razumijevanje svih SVN-ovih navika, opcija i upozorenja. Također, podsjećamo vas (opet) da subverzija NIJE jedini sustav kontrole nad verzijama tamo i GIT (koji je stvorio Linus Torvalds Linux kernel osnivač) čini se da dobiva na popularnosti u posljednjih nekoliko godina.
Ako se odlučite za pokretanje “running-config.sh” iz hotfortech projekta na vašem usmjerivaču, vidjet ćete da će se trenutno instalirati za vas: Anti-ads-pack, Opkg geek-init skripta, kao i stvari kao što su puni GNU “ls”, “manje”, “BASH” i još mnogo toga.
/jffs/svn/hotfortech-dd-wrt/running-conf.sh
Još značajki čekaju i ubuduće će biti dodane.
Administratori sustava će kodirati svoj izlaz iz kodiranja.