Jeste li ikada željeli raditi na projektu s mogućnošću praćenja i vraćanja promjena? How-To Geek objašnjava Kako koristiti popularni sustav za praćenje verzija, Subversion (a.k.a SVN).
Slika jasno dvosmislena
Ovaj će vam vodič pružiti mogućnost da uopće koristite subverziju klijenta i, ako ga imate, na vašem DD-WRT usmjerivaču. Ovaj vodič nikako nije konačan vodič za Subversion i puno informacija može se naći na Subversion Red Book. Ovaj vodič namijenjen je samo da vam pruži kratak odgovor na najosnovnija pitanja.
Moglo bi postojati brojni razlozi zbog kojih biste željeli "naplatiti" najnoviji kod za softverski projekt koji koristi verzijski sustav. To vam omogućuje da iskoristite najnovije još neobjavljene izmjene, pomažete u testiranju i čak razvoju. U ovom vodiču proći ćemo neke osnovne SVN terminologije, pokazati kako instalirati SVN klijent na Linux, Windows i ako imate jedan vaš OPKG omogućen DD-WRT usmjerivač. Uključili smo i primjer projekta koji možete provjeriti i koristiti za navedeni usmjerivač.
Subversion ni u kom slučaju nije jedini sustav kontrole verzije koji postoji, a alternative uključuju Git (koji je stvorio Linus Torvalds, osnivač Linux jezgre), Mercurial i PerForce u ime nekoliko. Uz to, to je jedan od slobodnih, zreli i široko korišten širom svijeta.
Od Subverzije "Crvena knjiga":
Subversion je slobodan / otvoren izvor sustav kontrole verzija (VCS). To jest, Subversion upravlja datotekama i direktorijima, kao i promjenama koje su im došle tijekom vremena. To vam omogućuje obnavljanje starijih verzija podataka ili pregled povijesti promjena podataka. U tom pogledu, mnogi ljudi misle o sustavu kontrole verzije kao nekom vrstom "vremeplova".
Napomena: Ova knjiga je konačna zbirka znanja o subverziji i preporučujemo vam da se na njega uputite na sve teme povezane s Subversionom.
Verzija je proces u kojem se stanje projekta u određenom vremenu sprema. Ovakav postupak često se koristi za upravljanje razvojem softvera kako bi rad mogao nastaviti poboljšavati projekt ili dodati značajke, a moći će pratiti što se promijenilo od zadnje ukupne točke "spremanja". Da bi razradio, ova vrsta postupka može biti korisna za jednu osobu, ali još više za skupinu ljudi, a svi koji rade na istom projektu. To je zato što, obično, kada se radi o projektu kao grupi, postoji raspodjela odgovornosti i različiti ljudi mijenjaju različite aspekte projekta. Bez mehanizma za verzije, bilo bi vrlo teško zadržati sve u sinkronizaciji na najnovijim radnim promjenama od svih ostalih.
Repozitorij
Repozitorij je mjesto gdje se pohranjuju svi podaci s različitih mjesta. U svijetu subverzije, s gledišta klijenta, to je poslužitelj koji sadrži bazu podataka projekta. Ova baza podataka sadrži sve datoteke koje su dio projekta sa svim njihovim prošlim verzijama.
Revizija
Kada se stvori spremište, dobiva se broj revizije nula (0). Ovaj broj se povećava za jedan (1) svaki put kada se izvrši izvršavanje. Broj revizije globalni je za repozitorij. To jest, da ne postoji pojedinačni broj revizije za pojedine datoteke u spremištu, čak i ako se ništa ne promijeni u toj datoteci za određenu vrstu obveze.
Radna kopija
Radna kopija je lokalna kopija (ili "naplata") određene verzije. Ovu inačicu obično je "najnoviji" (tzv. "Glava"), ali se može zatražiti prethodna verzija. Korisnik može učiniti s lokalnom kopijom sve što on želi, znajući da se, u najgorem slučaju, ponovno mogu ponovno provjeriti kod. Štoviše, ova kopija je "privatna". To je zato što dok ne ažurirate ili izvršite svoju kopiju, nećete vidjeti promjene drugih ljudi, niti će vidjeti vašu.
Ažuriranje i rješavanje sukoba
Lokalna radna kopija može se ažurirati. To jest, Ako ste "odjavili" neku verziju, a dok ste radili, ažurirana je inačica u spremištu, a radnu kopiju možete ažurirati na najnovije. Zapravo, poslužitelj će vas spriječiti da izvršite svoje izmjene prije nego što ažurirate na najnoviju verziju kako bi se podudarale s repozitorijem. To je učinjeno kako bi vas prisilili da riješite konflikte na lokalnoj razini, prije nego što mislite da ste izvršili promjene u repozitoriju.
stapanje
Spajanje se odnosi na postupak pomoću kojeg se promijenjeni kôd uklopio u jednu verziju. To također može značiti rješavanje sukoba.
obvezuje
Obvezivanje je postupak u kojem će promjene koje ste napravili u lokalnoj kopiji spojili u spremište. Ovo je najopasniji dio procesa, jer je ovdje da promjene koje ste napravili mogu utjecati na druge ljude koji koriste isti spremište. Zato se to obično obavlja nakon nekog razmatranja, uz konsenzus tima i nakon što riješite bilo kakve sukobe spajanja.
Tijek rada
Najosnovniji tijek rada iz perspektive korisnika kada koristi subverziju je ovo:
1. Check out postojeći kôd (obično "glavu").
2. Izvršite izmjene, dodajte datoteke i općenito razvite kôd.
3. Ažurirajte na najnoviju verziju kako biste bili sigurni da je lokalna kopija sinkronizirana s ažuriranjima u repozitoriji.
4. Ako je potrebno, lokalno spojite i riješite sukobe.
5.Pričvrstite spojene promjene u spremište.
6. Idite na korak 2.
Instalirajte klijenta
Da biste mogli koristiti subverziju, morate instalirati klijenta na svoj stroj.
Na Linuxu
Trebate samo instalirati paket. Na Ubuntu / Mint, to će biti učinjeno s:
sudo aptitude instalirajte subverziju
Na DD-WRT
Ako ste slijedili "Kako instalirati dodatni softver na kućnom usmjerivaču (DD-WRT)", možete instalirati svn klijent jednostavno izdavanjem:
opkg update; opkg instalira subversion-klijenta
U sustavu Windows
Dok duboki geek korisnici mogu početi zaboraviti da GUI katkada postoji, a ne svatko ima. Ako želite koristiti Windows klijenta za povezivanje s SVN repozitorijem, daleko najpopularnija je "Tortoise". Da biste ga koristili, jednostavno preuzmite program i instalirajte ga u redoviti način "sljedeći, sljedeći, završni".
Izradite "skladište"
Iako nećemo ući u puno detalja o tome kako postaviti subverzivni poslužitelj u ovom vodiču, Googleova alternativa nije loš početak za novajlijeg korisnika. Za izradu Googleovog spremišta:
Nakon što je vaš projekt izrađen, trebali biste pronaći upute za pristupnicu na kartici "Izvor".
Lijepa stvar oko Google koda jest da će omogućiti anonimnu verziju samo za čitanje za vaš projekt. Ako se ne želite nositi s gnjavažom o stvaranju vlastitog projekta, možete se anonimno prijaviti na taj pisacov spremište.
Jedna napomena o projektu Hotfortech: Ovaj projekt trebao bi biti omot za značajke koje su dodane DD-WRT-u na How-To Geek (koje ja osobno koristim) plus neke osobne ugađanje. Iako je ovaj projekt usmjeren na rad u sprezi s člancima objavljenim ovdje na howtogeeku, on je i dalje moj privatni projekt. To je, vrlo je pogodan mojoj Buffalo routeru (AR71xx arhitektura), mojim osobnim sklonostima i sklon je povremenim prigovaranjem.
Na Linuxu / DD-WRT-u
Napravite direktorij za rad, na primjer na DD-WRT, koji bi mogao biti:
mkdir -p / jffs / svn; cd / jffs / svn
Potpuna naredba na Linuxu sastoji se od same SVN naredbe, direktive "checkout", adrese spremišta i direktorija za checkout. Izradite praznu mapu i izvršite sljedeću naredbu:
svn checkout http://hotfortech-dd-wrt.googlecode.com/svn/trunk/ hotfortech-dd-wrt-samo za čitanje
Napominjemo da se u gornjem primjeru provjerava verzija samo za čitanje. Ako ste se odlučili za izradu vlastitog spremišta, morat ćete upotrijebiti httpS vezu.
U sustavu Windows
Budući da je kornjača ekstenzija ljuske, trebat ćete upotrijebiti kontekstni izbornik Windows Explorera datoteka (desnom tipkom miša). Zapravo, ako ga pokušate pozvati s početnog izbornika, dobit ćete:
"Ažuriraj" i "Spoji" radnu kopiju
Ako vaš rad na kodu s kolegama ili vi sami ažurirate kod s više lokacija (npr. Prijenosno računalo, stolno računalo ili čak usmjerivač), morat ćete ažurirati svoju radnu kopiju prije nego što pošaljete najnovije izmjene.
Na Linuxu / DD-WRT-u
Naredba za to na ovim POSIX sustavima je jednostavno:
svn gore
U sustavu Windows
"Pričekajte" svoje promjene
To je, trebali biste biti sukobi i spremni za ažuriranje repozitorija s promjenama.
Jedina točka koju treba imati na umu jest da je uobičajena praksa dodati poruku "zapisnika" na počinjenje, kako bi se lako moglo prisjetiti zbog čega su promjene izvršene. Zapravo, Googleovo spremište čini to obveznim preduvjetom za počinjenje.
Na Linuxu / DD-WRT-u
Ovo je primjer predanosti koju sam napravio za hotfortech projekt koji je uzeo na verziju 19:
svn commit -m "ažuriran kako bi odražavao novu vezu s ant-oglasima"
U sustavu Windows
Konačne primjedbe
Ovo bi trebalo biti dovoljno za početak. Savjetujemo vam da pročitate SVN referentne knjige da biste dobili sve dublje i bolje razumijevanje svih SVN-ovih upotreba, opcija i upozorenja. Također, podsjećamo vas (opet) da subverzija NIJE jedini sustav kontrole verzija vani, a GIT (koji je stvorio Linus Torvalds, osnivač Linux kernela) čini se da je popularnost posljednjih godina.
Ako odlučite pokrenuti "running-config.sh" iz hotfortech projekta na vašem usmjerivaču, vidjet ćete da će vam se trenutno instalirati: 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
Više mogućnosti su u tijeku i bit će dodane u budućnosti.
Administratori sustava kôd će izlaziti iz kodiranja.