Versiju izsekošana ar Subversion (SVN) iesācējiem
Vai esat kādreiz gribējuši strādāt pie projekta ar spēju izsekot jūsu izmaiņām, kā arī atgriezties? How-To Geek izskaidro, kā izmantot populāro versiju izsekošanas sistēmu Subversion (a.k.a SVN).
Attēls, kas ir skaidri neskaidrs
Prelog
Šīs rokasgrāmatas mērķis būs sniegt jums iespēju izmantot subversion klientu kopumā, un, ja tāds ir, jūsu * DD-WRT maršrutētājam. Šī rokasgrāmata nekādā ziņā nav galīgs Subversion ceļvedis, un daudz informācijas var atrast Subversion Red Book. Šī rokasgrāmata ir paredzēta, lai sniegtu jums īsu atbildi uz visvienkāršākajiem jautājumiem.
Pārskats
Varētu būt vairāki iemesli, kāpēc jūs vēlētos, lai jūs varētu „izrakstīties” jaunāko kodu programmatūras projektam, kas izmanto versiju sistēmu. Tas ļauj jums gūt labumu no jaunākajām vēl neatbrīvotajām izmaiņām, palīdzēt testēšanā un pat attīstībā. Šajā rokasgrāmatā mēs aplūkosim dažas pamata SVN terminoloģijas, parādīsim, kā instalēt SVN klientu Linux, Windows un ja jums ir viens no jūsu OPKG iespējotajiem DD-WRT maršrutētājiem. Mēs esam arī iekļāvuši piemēru projektam, kuru varat izrakstīt un izmantot minētajam maršrutētājam.
Kas ir Subversion?
Subversion nekādā ziņā nav vienīgā versiju kontroles sistēma, un alternatīvas ir Git (ko radīja Linus Torvalds Linux kodola dibinātājs), Mercurial un PerForce, lai minētu tikai dažus. Ar to teica, ka tā ir viena no brīvajām, tā ir nobriedusi un plaši izmantota visā pasaulē.
No Subversion “Red Book”:
Subversion ir bezmaksas / atvērts avots versiju kontroles sistēma (VCS). Tas nozīmē, ka Subversion laika gaitā pārvalda failus un direktorijus, kā arī izmaiņas. Tas ļauj jums atgūt vecākas datu versijas vai pārbaudīt jūsu datu vēstures izmaiņas. Šajā sakarā daudzi cilvēki domā par versiju kontroles sistēmu kā sava veida „laika mašīnu”.
Piezīme: Šī grāmata ir pilnīga zināšanu vākšana par subversion un jums ir ieteicams to aplūkot visās ar Subversion saistītās tēmās.
Kas ir versijas?
Versija ir process, kurā tiek saglabāts projekta stāvoklis kādā brīdī. Šāda veida procedūra bieži tiek izmantota, lai pārvaldītu programmatūras izstrādi, lai darbs varētu turpināt uzlabot projektu vai pievienot funkcijas, vienlaikus spējot izsekot, kas ir mainījies no pēdējā “glābšanas” punkta. Lai izstrādātu, šāda veida procedūra var būt noderīga vienai personai, bet pat vairāk cilvēku grupai, kas strādā pie viena projekta. Tas ir tāpēc, ka parasti, strādājot pie projekta kā grupas, ir atbildības sadalījums, un dažādi cilvēki maina dažādus projekta aspektus. Bez versijas mehānisma būtu ļoti grūti saglabāt visu sinhronizāciju ar jaunākajām darba izmaiņām no visiem pārējiem.
Terminoloģija
Repozitorijs
Repozitorijs ir vieta, kur tiek saglabāti visi dati no visām dažādām vietām. Subversion pasaulē, no klienta viedokļa, tas ir serveris, kuram ir projekta datu bāze. Šajā datubāzē ir visi faili, kas ir daļa no projekta ar visām iepriekšējām versijām.
Pārskatīšana
Kad ir izveidots repozitorijs, tam tiek piešķirts nulles (0) versijas numurs. Šis skaitlis tiek palielināts par vienu (1) katru reizi, kad tiek veikta saistību izpilde. Pārskatīšanas numurs krātuvē ir globāls. Tas nozīmē, ka repozitorijā nav atsevišķu atsevišķu failu pārskatīšanas numura, pat ja šajā failā nekas nav mainīts konkrētai saistībai.
Darba kopija
Darba kopija ir konkrētas versijas vietējā kopija (vai “izrakstīšanās”). Parasti šī izrakstīšanās versija ir “jaunākā” (saukta arī par „galvu”), bet iepriekšējo var pieprasīt. Lietotājs var darīt ar vietējo kopiju, ko viņš / viņa vēlas, ar zināšanām, ka sliktākajā gadījumā viņi varēs vēlreiz izrakstīt kodu. Turklāt šī kopija ir “privāta”. Tas ir tāpēc, ka līdz brīdim, kad jūs vai nu neatjaunosit, ne arī neizpildīsit kopiju, jūs neredzēsiet citu cilvēku izmaiņas, kā arī neredzēsiet jūsu.
Atjaunināšana un konfliktu risināšana
Vietējo darba kopiju var atjaunināt. Tas ir, ja jūs "pārbaudīji" noteiktu versiju un kamēr jūs strādājāt, repozitorija versija ir atjaunināta, jūs varat atjaunināt savu darba kopiju. Faktiski serveris neļaus izdarīt izmaiņas pirms jaunākās versijas atjaunināšanas, lai tas atbilstu repozitorijai. Tas tiek darīts, lai piespiestu jūs atrisināt konfliktus lokāli, pirms jūs pat domājat par izmaiņu izdarīšanu repozitorijā.
Apvienošanās
Apvienošana attiecas uz procesu, ar kuru mainīts kods tiek sajaukts vienā versijā. Tas var arī radīt konfliktu risināšanu.
Saistības
Apņemšanās ir process, kurā vietējā kopijā veiktās izmaiņas tiks apvienotas repozitorijā. Šī ir visnopietnākā procesa daļa, jo tieši šeit veiktās izmaiņas var ietekmēt citus cilvēkus, kas izmanto to pašu repozitoriju. Tieši tāpēc tas parasti tiek veikts pēc kāda apsvēruma, ar komandas vienprātību un pēc tam, kad esat atrisinājis jebkādus apvienojošus konfliktus.
Darbplūsma
Visvienkāršākā darbplūsma no lietotāja viedokļa, lietojot subversion, ir šāda:
1. Pārbaudiet esošo kodu (parasti “galva”).
2. Veiciet izmaiņas, pievienojiet failus un izstrādājiet kodu.
3. Atjauniniet uz jaunāko versiju, lai pārliecinātos, ka vietējā kopija ir sinhronizēta ar repozitorija atjauninājumiem.
4. Ja nepieciešams, lokāli apvienojiet un atrisiniet konfliktus.
5. Apņemiet apvienotās izmaiņas repozitorijā.
6. GoTo 2. solis.
Ļauj iegūt plaisāšanu
Instalējiet klientu
Lai varētu izmantot subversion, jums ir jāinstalē klients jūsu datorā.
Linux
Jums ir nepieciešams tikai instalēt paketi. Par Ubuntu / Mint, tas tiek darīts ar:
sudo aptitude instalēt subversion
Uz DD-WRT
Ja esat ievērojis “Kā instalēt papildu programmatūru mājas maršrutētājam (DD-WRT)”, jūs varat instalēt svn klientu, vienkārši izsniedzot:
opkg update; opkg instalējiet subversion-client
Operētājsistēmā Windows
Kaut arī mēs dziļi geek lietotāji var sākt aizmirst, ka GUI pat pastāv reizēm, ne visi ir. Ja vēlaties izmantot Windows klientu, lai izveidotu savienojumu ar SVN repozitoriju, vispopulārākais ir “Tortoise”. Lai to izmantotu, vienkārši lejupielādējiet programmu un instalējiet regulārajā “nākamais, nākamais, apdares” veidā.
Izveidot “repozitoriju”
Lai gan šajā rokasgrāmatā nebūsim daudz detalizēta informācija par to, kā iestatīt subversion serveri, Google alternatīva nav iesācēju iesācēja slikts sākums. Lai izveidotu Google repozitoriju:
- Virzieties uz Google koda hostinga vietni un izveidojiet jaunu projektu.
- Nākamajā lapā aizpildiet nepieciešamos laukus un atlasiet “versijas kontroles sistēmas” tipu, kas ir subversion.
Piezīme. Iespējams, vēlēsities apskatīt, kāda ir atšķirība starp Google piedāvātajām licencēm, pirms izvēlaties kādu no projektiem. - Noklikšķiniet uz “Izveidot projektu”.
Kad jūsu projekts ir izveidots, jums vajadzētu būt iespējai atrast norādījumus par to, kā to piekļūt cilnē “Avots”.
Jauka lieta par Google kodu, tas ļaus jūsu projektam izmantot anonīmu tikai lasāmu versiju. Ja nevēlaties risināt problēmu, kas saistīta ar sava projekta izveidi, jūs varat anonīmi izrakstīt šo rakstnieka repozitoriju.
Viena piezīme par hotfortech projektu: Šis projekts ir paredzēts kā iesaiņojums funkcijām, kas ir pievienotas DD-WRT uz How-To Geek (ko es personīgi izmantoju), kā arī dažas personīgas tweaks. Lai gan šis projekts ir izstrādāts, lai strādātu kopā ar rakstiem, kas publicēti šeit par howtogeek, tas joprojām ir mans privātais projekts. Tas ir, tas ir ļoti piemērots manam Buffalo maršrutētājam (AR71xx arhitektūra), manām personīgajām kaprīzēm un ir pakļauts gadījuma rakstura borkage.
Linux / DD-WRT
Izveidojiet direktoriju, lai strādātu, piemēram, DD-WRT, kas varētu būt:
mkdir -p / jffs / svn; cd / jffs / svn
Pilna komanda Linux sastāv no pašas SVN komandas, “Checkout” direktīvas, repozitorijas adreses un arī izrakstīšanās kataloga. Izveidojiet tukšu direktoriju un izpildiet tālāk norādīto komandu:
svn checkout http://hotfortech-dd-wrt.googlecode.com/svn/trunk/ hotfortech-dd-wrt-tikai lasāms
Ņemiet vērā, ka iepriekš minētajā piemērā tiek nolasīta tikai lasāmā versija. Ja esat izvēlējies izveidot savu repozitoriju, jums būs jāizmanto httpS saite.
Operētājsistēmā Windows
Tā kā bruņurupucis ir čaulas paplašinājums, jums jāizmanto Windows failu izpētes konteksta izvēlne (ar peles labo pogu), lai to izmantotu. Faktiski, ja jūs mēģināt to izmantot no sākuma izvēlnes, jūs saņemsiet:
- Izveidojiet tukšu direktoriju.
- Ar peles labo pogu noklikšķiniet tajā, lai atvērtu konteksta izvēlni.
- Atlasiet “SVN Checkout”:
- Nokopējiet un ielīmējiet saiti uz projektu (ja tāds ir) “URL” tekstlodziņā:
- Atkarībā no jūsu projekta lieluma tas var aizņemt kādu laiku, bet, kad ir pabeigta “Checkout”, jums vajadzētu redzēt kaut ko līdzīgu:
- Jūs varat sākt attīstīties.
“Update” un “apvienot” savu darba kopiju
Ja jūs strādājat ar kodu kopā ar kolēģiem vai jūs pats atjaunināt kodu no vairākām atrašanās vietām (t.i., klēpjdators, galddators vai pat maršrutētājs), jums būs jāatjaunina darba kopija, pirms veicat jaunākās izmaiņas.
Linux / DD-WRT
Šīs POSIX sistēmās tas ir vienkārši:
svn up
Operētājsistēmā Windows
- Ar peles labo pogu noklikšķiniet uz darba direktorijas un atlasiet “SVN Update”:
- Ja rodas konflikti, mēģiniet sekot norādījumiem uz ekrāna un izmantot savu spriedumu par to, ko darīt ar viņiem.
“Izpildiet” savas izmaiņas
Tas ir, jums ir jābūt bez konfliktiem un jābūt gataviem atjaunināt repozitoriju ar savām izmaiņām.
Viens no šiem aspektiem ir tas, ka ir vispārpieņemta prakse pievienot “žurnāla” ziņojumu, lai varētu viegli atcerēties, kādēļ tika veiktas izmaiņas. Faktiski Google krātuve to padara par obligātu priekšnoteikumu, lai veiktu.
Linux / DD-WRT
Šis ir piemērs saistībām, ko esmu veicis hotfortech projektā, kas to papildināja līdz 19. versijai:
svn saistības -m “atjaunināts, lai atspoguļotu jaunās ant-ads pack saites”
Operētājsistēmā Windows
- Ar peles labo pogu noklikšķiniet uz darba direktorijas un atlasiet “SVN Commit”:
- Jums jābūt sveicamam ar logu, kas ļauj atzīmēt žurnāla ziņojumu:
- Noklikšķiniet uz Labi un, kad tiek prasīta parole, sniedziet Google ģenerēto paroli.
- Ja saistība bija veiksmīga, jums vajadzētu redzēt kaut ko līdzīgu:
- Tas ir, jums vajadzētu būt iespējai izdarīt kā BOSS.
Galīgās piezīmes
Tam vajadzētu pietikt, lai sāktu darbu. Lai iegūtu dziļāku un labāku izpratni par visiem SVN lietojumiem, opcijām un brīdinājumiem, ieteicams izlasīt SVN atsauces grāmatas. Tāpat mēs atgādinām jums (atkal), ka subversion nav vienīgā versiju kontroles sistēma, un GIT (ko radīja Linus Torvalds Linux kodola dibinātājs) pēdējos gados kļūst populārs.
Ja jūs izvēlēsieties palaist “running-config.sh” no jūsu maršrutētāja hotfortech projekta, jūs atradīsiet, ka tas pašlaik tiks instalēts jums: anti-ads-pack, Opkg geek-init skripts, kā arī tādas lietas kā pilns GNU “ls”, “mazāk”, “BASH” un vairāk.
/jffs/svn/hotfortech-dd-wrt/running-conf.sh
Vairāk iezīmju tiek gaidītas un tiks pievienotas nākotnē.
Sistēmas administratori kodē savu kodu no kodēšanas.