213
TortoiseSVN Subverzioni klijent za Vindouz Version 1.8 Stefan Küng Lübbe Onken Simon Large

TortoiseSVN 1.8.7 Sr@Latin

Embed Size (px)

DESCRIPTION

svn description

Citation preview

  • TortoiseSVNSubverzioni klijent za Vindouz

    Version 1.8

    Stefan KngLbbe OnkenSimon Large

  • TortoiseSVN: Subverzioni klijent za Vindouz: Version 1.8od Stefan Kng, Lbbe Onken, i Simon LargePrevod: Milorad Popovi ([email protected])

    datum izdavanja 2013/11/11 21:33:57 (r24944)

  • iii

    SadrajPredgovor .................................................................................................................................... xi

    1. ta je TortoiseSVN? .......................................................................................................... xi2. TortoiseSVN osobine ......................................................................................................... xi3. Licence ........................................................................................................................... xii4. Razvoj ............................................................................................................................ xii

    4.1. TortoiseSVN istorija ............................................................................................... xii4.2. Zahvalnosti .......................................................................................................... xiii

    5. Vodi za itanje .............................................................................................................. xiii6. Terminologija koriena u ovom dokumentu ........................................................................ xiv

    1. Krenimo od poetka ................................................................................................................... 11.1. Instaliranje TortoiseSVN ................................................................................................... 1

    1.1.1. Zahtevi sistema ..................................................................................................... 11.1.2. Instalacija ............................................................................................................ 1

    1.2. Osnovni koncepti ............................................................................................................ 11.3. Idi na test drajv ............................................................................................................... 2

    1.3.1. Kreiranje spremita ............................................................................................... 21.3.2. Uvoenje projekta ................................................................................................. 21.3.3. Preuzimanje radne kopije ....................................................................................... 31.3.4. Izrada izmena ....................................................................................................... 31.3.5. Dodavanje jo fajlova ............................................................................................ 41.3.6. Pregled istorije projekta ......................................................................................... 41.3.7. Ponitavanje izmena .............................................................................................. 5

    1.4. Pomeranje na ... ............................................................................................................... 52. Osnovni Kontrola-Verzija Koncepti ............................................................................................... 7

    2.1. Spremite ....................................................................................................................... 72.2. Modeli verzionisanja ........................................................................................................ 7

    2.2.1. Problem Fajl-Deljenja ............................................................................................ 72.2.2. Zakljuaj-Menjaj-Otkljuaj reenje ........................................................................... 82.2.3. Kopiraj-Menjaj-Stopi reenje ................................................................................... 92.2.4. ta Subverzija radi? ............................................................................................. 11

    2.3. Subverzija u akcija ......................................................................................................... 112.3.1. Radna kopija ...................................................................................................... 112.3.2. URL spremita .................................................................................................... 122.3.3. Revizije ............................................................................................................. 132.3.4. Kako radna kopija prati spremite .......................................................................... 15

    2.4. Zakljuak ..................................................................................................................... 153. Spremite ................................................................................................................................ 16

    3.1. Kreiranje spremita ........................................................................................................ 163.1.1. Kreiranje spremita klijentom komandne linije .......................................................... 163.1.2. Kreiranje spremita sa TortoiseSVN ........................................................................ 163.1.3. Lokalni pristup spremitu ...................................................................................... 173.1.4. Pristupanje spremitu na mrenom deljenom prostoru ................................................ 173.1.5. Izgled spremita .................................................................................................. 18

    3.2. Osiguranje spremita ...................................................................................................... 193.3. Zakaive skripte sa serverske strane .................................................................................. 193.4. Veze preuzimanja ........................................................................................................... 203.5. Pristupanje Spremitu ..................................................................................................... 21

    4. Vodi dnevnog korienja .......................................................................................................... 224.1. Opte osobine ............................................................................................................... 22

    4.1.1. Prekrivne ikone ................................................................................................... 224.1.2. Kontekst meniji: .................................................................................................. 224.1.3. Vuci baci ........................................................................................................... 244.1.4. Zajednike skraenice .......................................................................................... 254.1.5. Autentikacija ...................................................................................................... 254.1.6. Maksimiranje Vindouza ........................................................................................ 26

  • TortoiseSVN

    iv

    4.2. Uvoz podataka u spremite .............................................................................................. 264.2.1. Uvezi ................................................................................................................ 264.2.2. Uvoz na mesto .................................................................................................... 274.2.3. Specijalni fajlovi ................................................................................................. 27

    4.3. Provera radne kopije ...................................................................................................... 274.3.1. Preuzimanje dubina ............................................................................................. 28

    4.4. Urezivanje vaih izmena u spremite ................................................................................. 304.4.1. Urezivanje dijalog ............................................................................................... 304.4.2. Liste izmena ....................................................................................................... 334.4.3. Urezivanje samo dela fajlova ................................................................................. 334.4.4. Iskljuivanje stavki iz liste za urezivanje ................................................................. 334.4.5. Urezivanje dnevnika poruka .................................................................................. 334.4.6. Napredovanje urezivanja ....................................................................................... 35

    4.5. Aurirajte vau radnu kopiju izmenama drugih ................................................................... 364.6. Reavanje konflikta ........................................................................................................ 37

    4.6.1. Fajl Konflikti ...................................................................................................... 374.6.2. Konflikti osobina ................................................................................................. 384.6.3. Konflikti Stabla ................................................................................................... 38

    4.7. Dobijanje status informacija ............................................................................................. 414.7.1. Prekrivne ikone ................................................................................................... 414.7.2. Detaljni status ..................................................................................................... 434.7.3. TortoiseSVN kolumne u vindouz eksploreru ............................................................. 434.7.4. Lokalni i daljinski status ....................................................................................... 444.7.5. Pregled Razl ....................................................................................................... 46

    4.8. Liste izmena ................................................................................................................. 464.9. Revizioni dijalog dnevnika .............................................................................................. 49

    4.9.1. Pozivanje na dijalog dnevnika revizija .................................................................... 494.9.2. Akcije dnevnika revizija ....................................................................................... 504.9.3. Dobijanje dodatnih informacija .............................................................................. 514.9.4. Dobijanje vie poruka dnevnika ............................................................................. 574.9.5. Tekua Revizija Radne Kopije ............................................................................... 574.9.6. Spajanje osobina praenja ..................................................................................... 574.9.7. Izmena poruka dnevnika i autora ............................................................................ 584.9.8. Filriranje dnevnika poruka .................................................................................... 594.9.9. Statistike informacije .......................................................................................... 604.9.10. Iskljuen mod ................................................................................................... 634.9.11. Obnavljanje izgleda ............................................................................................ 63

    4.10. Pregled razlika ............................................................................................................. 634.10.1. Fajl razlike ....................................................................................................... 644.10.2. Kraj-reda i Belina Opcije .................................................................................... 654.10.3. Poreenje foldera ............................................................................................... 654.10.4. Razl slika koristei TortozDif .............................................................................. 664.10.5. Difing Ofice dokumente ...................................................................................... 674.10.6. Spoljanji Razl/Stopi alat .................................................................................... 67

    4.11. Dodavanje novih fajlova i foldera ................................................................................... 684.12. Kopiranje/Pomeranje/Preimenovanje fajlova i foldera ......................................................... 694.13. Zanemarivanje fajlova i foldera ...................................................................................... 70

    4.13.1. Hvatanje modela u listi zanemarivanja ................................................................... 704.14. Brisanje, pomeranje i preimenovanje ............................................................................... 71

    4.14.1. Brisanje fajlova i foldera ..................................................................................... 724.14.2. Pomeranje fajlova i foldera .................................................................................. 734.14.3. Rad sa konfliktom veliine slova u imenu fajla ....................................................... 734.14.4. Ispravka preimenovanja fajlova ............................................................................ 744.14.5. Brisanje neverzionisanih fajlova ........................................................................... 74

    4.15. Poniti izmene ............................................................................................................. 744.16. ienje ...................................................................................................................... 754.17. Podeavanje projekta .................................................................................................... 76

    4.17.1. Subverzione osobine .......................................................................................... 76

  • TortoiseSVN

    v

    4.17.2. Osobine TortoiseSVN projekata ........................................................................... 804.17.3. Ureiva osobina ............................................................................................... 85

    4.18. Spoljanje Stavke ......................................................................................................... 924.18.1. Imenici ............................................................................................................ 924.18.2. Spoljanji Fajlovi ............................................................................................... 94

    4.19. Grananje/Oznaavanje ................................................................................................... 944.19.1. Kreiranje Grane ili oznaka .................................................................................. 944.19.2. Drugi nain kreiranja grane ili oznake ................................................................... 974.19.3. Preuzeti ili prebaciti... ......................................................................................... 97

    4.20. Spajanje ...................................................................................................................... 984.20.1. Spajanje opsega revizija ...................................................................................... 994.20.2. Spajanje dva razliita stabla ............................................................................... 1014.20.3. Opcije spajanja ................................................................................................ 1014.20.4. Pregled rezultata spajanja .................................................................................. 1024.20.5. Praenje Spajanja ............................................................................................. 1034.20.6. Rukovanje konfliktima u toku spajanja ................................................................ 1034.20.7. Spajanje cele grane .......................................................................................... 1044.20.8. Osobina odravanja grane .................................................................................. 105

    4.21. Zakljuavanje ............................................................................................................. 1054.21.1. Kako zakljuavanje radi na Subverziji ................................................................. 1064.21.2. Zakljuavanje .................................................................................................. 1064.21.3. Otkljuavanje .................................................................................................. 1074.21.4. Provera statusa zakljuavanja ............................................................................. 1084.21.5. Pravljenje nezakljuanih fajlova samo za itanje .................................................... 1084.21.6. Zakaive skripte za zakljuavanje ....................................................................... 108

    4.22. Kreiranje i primena zakrpa ........................................................................................... 1094.22.1. Kreiranje fajla zakrpe ....................................................................................... 1094.22.2. Primena fajla zakrpe ......................................................................................... 110

    4.23. Ko je izmenio koju liniju? ........................................................................................... 1104.23.1. Krivac za fajl .................................................................................................. 1114.23.2. Razlikeke okrivljavanja ..................................................................................... 113

    4.24. Pretraiva spremita ................................................................................................... 1134.25. Revizioni Graf ........................................................................................................... 116

    4.25.1. vor revizionog grafa ....................................................................................... 1174.25.2. Izmena pogleda. ............................................................................................... 1174.25.3. Korienje grafa ............................................................................................... 1194.25.4. Obnavljanje izgleda .......................................................................................... 1204.25.5. Uproavanje Stabala ........................................................................................ 120

    4.26. Izvoz Subverzione radne kopije .................................................................................... 1204.26.1. Izbacivanje radne kopije iz kontrole verzija .......................................................... 122

    4.27. Relociranje radne kopije .............................................................................................. 1224.28. Integracija sa Bag Praenja Sistem / Problem Tragai ........................................................ 123

    4.28.1. Dodavanje Problem Brojeva u Dnevnik Poruka ..................................................... 1234.28.2. Dobijanje informacija od poblem tragaa .............................................................. 127

    4.29. Integracija sa Veb-zasnovanom pregledau spremita ........................................................ 1284.30. TortoiseSVN postavke ................................................................................................. 129

    4.30.1. Generalno podeavanje ...................................................................................... 1294.30.2. Revizioni Graf Podeavanje ............................................................................... 1374.30.3. Ikona prekriva podeavanje .............................................................................. 1394.30.4. Mrena podeavanja ......................................................................................... 1434.30.5. Spoljanji program podeavanja .......................................................................... 1454.30.6. Svani podaci podeavanje ................................................................................ 1494.30.7. Ke dnevnika .................................................................................................. 1504.30.8. Zakaiv skript klijentske strane ........................................................................... 1534.30.9. TortozBlame podeavanje .................................................................................. 1574.30.10. Napredna podeavanja ..................................................................................... 1584.30.11. Izvoz TSVN podeavanja ................................................................................. 162

    4.31. Finalni korak ............................................................................................................. 162

  • TortoiseSVN

    vi

    5. SubVCRev program ................................................................................................................ 1635.1. SubVCRev komandna linija ........................................................................................... 1635.2. Zamena kljunih rei .................................................................................................... 1635.3. Primer kljune rei ....................................................................................................... 1645.4. COM interfejs ............................................................................................................. 165

    6. IBagtragaSnabdeva interfejs ................................................................................................... 1686.1. Konvencija oznaavanja ................................................................................................ 1686.2. IBagtragaSnabdeva interfejs ........................................................................................ 1686.3. IBagtragaSnabdeva2 interfejs ...................................................................................... 170

    A. esto postavljana pitanja (PP) ................................................................................................ 173B. Kako da ja... ......................................................................................................................... 174

    B.1. Pomeri/kopiraj mnogo fajlova oednom ........................................................................... 174B.2. Forsirati korisnike da unesu poruke dnevnika ................................................................... 174

    B.2.1. Zakaiv skript na serveru .................................................................................... 174B.2.2. Osobine projekta ............................................................................................... 174

    B.3. Obnavljanje izabranih fajlova iz spremita ....................................................................... 174B.4. Vrati nazad (poniti) revizije u spremitu ......................................................................... 174

    B.4.1. Koristi dijalog dnevnika revizija .......................................................................... 175B.4.2. Koristi dijalog spajanja ...................................................................................... 175B.4.3. Koristi svndumpfilter .................................................................................. 175

    B.5. Uporedi dve revizije fajla ili foldera ............................................................................... 175B.6. Ukljui slian sub-projekat ............................................................................................ 176

    B.6.1. Koristite svn:externals ........................................................................................ 176B.6.2. Koristi ugnjedenu radnu kopiju .......................................................................... 176B.6.3. Koristi relativnu lokaciju .................................................................................... 176B.6.4. Dodaj projekat u spremite. ................................................................................. 177

    B.7. Kreiraj skraenicu za spremite ...................................................................................... 177B.8. Zanemarivanje fajlova koji su ve verzionisani. ................................................................ 177B.9. Neverzionisana radna kopija .......................................................................................... 177B.10. Ukloni radnu kopiju ................................................................................................... 177

    C. Korisni saveti za administratore ................................................................................................ 178C.1. Rasporeivanje TortoiseSVN preko grupne polise .............................................................. 178C.2. Preusmeravanje provere nadogradnje ............................................................................... 178C.3. Podeavanje SVN_ASP_DOT_NET_HACK promenljive okruenja. ....................................... 179C.4. Onemugui ulaz kontekstnog menija ............................................................................... 179

    D. Automatizovanje TortoiseSVN ................................................................................................. 181D.1. TortoiseSVN komande .................................................................................................. 181D.2. Tsvncmd URL rukovalac .............................................................................................. 182D.3. TortozIDif komande ..................................................................................................... 183

    E. Komandna Linija Interfejs Unakrsne Reference ........................................................................... 184E.1. Konvencije i osnovna pravila ......................................................................................... 184E.2. TortoiseSVN komande .................................................................................................. 184

    E.2.1. Preuzimanje ...................................................................................................... 184E.2.2. Obnavljanje ...................................................................................................... 184E.2.3. Uskladi sa revizijom... ........................................................................................ 185E.2.4. Urezivanje ........................................................................................................ 185E.2.5. Razl ................................................................................................................ 185E.2.6. Prikai dnevnik ................................................................................................. 185E.2.7. Provera izmena ................................................................................................. 186E.2.8. Revizioni graf ................................................................................................... 186E.2.9. Repo-pretraiva ............................................................................................... 186E.2.10. Uredi sukob .................................................................................................... 186E.2.11. Reeno ........................................................................................................... 186E.2.12. Preimenuj ....................................................................................................... 186E.2.13. Obrii ............................................................................................................ 187E.2.14. Vrati na staro .................................................................................................. 187E.2.15. ienje ......................................................................................................... 187E.2.16. Zakljuaj ........................................................................................................ 187

  • TortoiseSVN

    vii

    E.2.17. Skini Katanac ................................................................................................. 187E.2.18. Grana/Oznaka ................................................................................................. 187E.2.19. Zamena .......................................................................................................... 188E.2.20. Stopi ............................................................................................................. 188E.2.21. Izvezi ............................................................................................................ 188E.2.22. Premesti ......................................................................................................... 188E.2.23. Kreuraj spremite ovde ..................................................................................... 188E.2.24. Dodavanje ...................................................................................................... 188E.2.25. Uvezi ............................................................................................................. 188E.2.26. Krivac ........................................................................................................... 189E.2.27. Dodaj u listu za zanemarivanje .......................................................................... 189E.2.28. Izradi zakrpu ................................................................................................... 189E.2.29. Primena zakrpa ............................................................................................... 189

    F. Implementacioni detalji ............................................................................................................ 190F.1. Prekrivne ikone ............................................................................................................ 190

    G. Jeziki paket i provera sintakse ................................................................................................ 192G.1. Jeziki paketi .............................................................................................................. 192G.2. Pravopis kontrola ........................................................................................................ 192

    Pojmovnik ................................................................................................................................. 193Indeks ...................................................................................................................................... 196

  • viii

    Spisak slika1.1. TortoiseSVN meni za neverzionisani folder .................................................................................. 21.2. Uvozni dijalog ........................................................................................................................ 31.3. Pregleda fajl razlika ................................................................................................................ 41.4. Dijalog dnevnika ..................................................................................................................... 52.1. Tipini klijent/server sistem ....................................................................................................... 72.2. Kako izbei problem ................................................................................................................ 82.3. Zakljuaj-Menjaj-Otkljuaj reenje ............................................................................................. 92.4. Kopiraj-Menjaj-Stopi reenje ................................................................................................... 102.5. ...Kopiraj-Menjaj-Stopi nastavak ............................................................................................... 102.6. Fajlsistem spremita ............................................................................................................... 122.7. Spremite ............................................................................................................................. 143.1. TortoiseSVN meni za neverzionisani folder ................................................................................ 164.1. Pretraiva prikazuje prekrivne ikone ........................................................................................ 224.2. Kontekst meni za folder pod kontrolom verzija ........................................................................... 234.3. Eksplorer fajl meni za skraenice u verzionisanom folderu ............................................................ 244.4. Desni vuci meni za foldere pod kontrolom verzija ....................................................................... 244.5. Autentikacioni dijalog ............................................................................................................. 254.6. Preuzimanje dijalog ................................................................................................................ 284.7. rezivanje dijalog .................................................................................................................... 314.8. Provera pravopisa dijaloga urezivanja ........................................................................................ 344.9. Progres dijalog koji prikazije napredovanje urezivanja .................................................................. 354.10. Progres dijalog koji pokazuje zavreno obnavljanje .................................................................... 364.11. Pretraiva prikazuje prekrivne ikone ....................................................................................... 414.12. Vlasniki list eksplorera, Subverzioni tab ................................................................................. 434.13. Provera izmena .................................................................................................................... 444.14. Dijalog urezivanja sa listom promena ...................................................................................... 484.15. Dijalog dnevnika revizija ....................................................................................................... 494.16. Gornji panel kontekstnog menija dnevnika dijaloga revizija ......................................................... 514.17. Kod saradnik dijalog podeavanja ........................................................................................... 534.18. Gornji panel kontekstnog menija za 2 izabrane revizije ............................................................... 544.19. Dijalog dnevnika donji panel sa kontekstnim menijem ................................................................ 554.20. Dnevnik donji panel sa lontekst menijem kada su viestruki fajlovi izabrani. ................................... 564.21. Dijalog dnevnika koji prikazuje spajanje praenja revizija ........................................................... 584.22. Urezivanje-po-autorskom histogramu ....................................................................................... 604.23. Ureuivanje-po-autorskom pita dijagramu .................................................................................. 614.24. Urezivanje-po-podacima grafa ................................................................................................ 624.25. Dijalog Idi na Iskljuenje ...................................................................................................... 634.26. Poreenje revizionija dijalog .................................................................................................. 654.27. Pregleda razlika slika .......................................................................................................... 664.28. Eksplorerov kontekst meni za neverzionisane fajlve ................................................................... 684.29. Desni vuci meni za foldere pod kontrolom verzija ...................................................................... 694.30. Eksplorerov kontekst meni za neverzionisane fajlve ................................................................... 704.31. Eksplorerov kontekst meni za verzionisane fajlove ..................................................................... 724.32. Vrati dijalog ........................................................................................................................ 754.33. Subverzioni vlasniki list ....................................................................................................... 764.34. Dodavanje osobina ............................................................................................................... 784.35. Dijalog osobina za zakaive skripte ......................................................................................... 824.36. Dijalog osobina korisnikih bul tipova ..................................................................................... 824.37. Dijalog osobina korisnikih tipova stanja ................................................................................. 834.38. Dijalog osobina jedna linija korisniki tipovi ............................................................................ 844.39. Dijalog osobina vie linija korisniki tipovi .............................................................................. 844.40. svn:eksternali strana osobina .................................................................................................. 864.41. svn:kljune rei strana osobina ............................................................................................... 864.42. svn:eol-stil strana osobina ...................................................................................................... 874.43. tsvn:bagtrek strana osobina .................................................................................................... 88

  • TortoiseSVN

    ix

    4.44. Veliina strane osobina dnevnika poruka .................................................................................. 894.45. Jezik strane osobina .............................................................................................................. 894.46. svn:mime-tip strana osobina ................................................................................................... 904.47. svn:trai-zakljuavanje .......................................................................................................... 904.48. svn:izvrni strana osobina ...................................................................................................... 904.49. Dijalog osobina stapa dnevnik poruke ablona ........................................................................... 914.50. Grana/Oznaka dijalog ........................................................................................................... 954.51. Prebaci dijalog ..................................................................................................................... 984.52. arobnjak soajanja - Izbor opsega revizija ................................................................................ 994.53. arobnjak spajanja - Spajanje stabla ...................................................................................... 1014.54. Konflikti spajanja dijalog odgovora ....................................................................................... 1044.55. Dijalog reintegrisanog spajanja ............................................................................................. 1054.56. Dijalog zakljuavanja .......................................................................................................... 1074.57. Provera dijaloga izmena ....................................................................................................... 1084.58. Kreiranje dijaloga zakrpe ..................................................................................................... 1094.59. Beleka/Krivac dijalog ......................................................................................................... 1114.60. TortozBlame ...................................................................................................................... 1124.61. Pretraiva spremita ........................................................................................................... 1144.62. Revizioni graf .................................................................................................................... 1164.63. Izvoz-iz-URL dijalog .......................................................................................................... 1214.64. Relociranje dijalog .............................................................................................................. 1224.65. Dijalog bagtrek osobina ....................................................................................................... 1244.66. Primer dijaloga zahteva problem tragaa ................................................................................. 1274.67. Dijalog podeavanja, opta stranica ........................................................................................ 1294.68. Dijalog podeavanja, Konetekst meni strana ............................................................................ 1314.69. Podeavanje dijaloga, dijalog 1 strana .................................................................................... 1324.70. Dijalog podeavanja, Dijalog 2 stranica .................................................................................. 1344.71. Dijalog podeavanja, strana dijaloga 3 .................................................................................... 1354.72. Dijalog Podeavanja, Stranica Boja ........................................................................................ 1364.73. Dijalog Podeavanja, Strana Revizionog Grafa ........................................................................ 1374.74. Dijalog Podeavanja, Revizioni Graf Stranica Boja ................................................................... 1384.75. Dijalog podeavanja, Ikona prekrivai stranica ......................................................................... 1394.76. Dijalog podeavanja, Podeavanje ikona stranica ...................................................................... 1424.77. Dijalog podeavanja, Podeavanje ikona stranica ...................................................................... 1434.78. Dijalog podeavanja, Mrena stranica .................................................................................... 1444.79. Dijalog podeavanja, Razl pregleda stranica ........................................................................... 1454.80. Dijalog podeavanja, Razl/Stopi napredni dijalog ..................................................................... 1484.81. Dijalog podeavanja, Sauvani podaci stranica ......................................................................... 1494.82. Dijalog podeavanja, Ke dnevnika stranica ............................................................................ 1504.83. Dijalog podeavanja, Ke dnevnika statistika ........................................................................... 1524.84. Dijalog podeavanja, Zakaiv skript stranica ........................................................................... 1534.85. Dijalog podeavanja, Konfiguracija zakaivog skripta ............................................................... 1544.86. Dijalog podeavanja, Stranica integracije problem tragaa .......................................................... 1564.87. Dijalog podeavanja, TortozBlame stranica ............................................................................. 1574.88. Alatni panel sa uobiajenim grupisanjem ................................................................................ 1594.89. Alatni pult sa grupisanjem spremita ...................................................................................... 1594.90. Alatni pult sa grupisanjem spremita ...................................................................................... 1604.91. Alatni pult grupisanje sa kolor prekrivaima spremita .............................................................. 160C.1. Dijalog urezivanja, prikazuje primedbe nadgradnje .................................................................... 178

  • x

    Spisak tabela2.1. URL pristup spremitu ............................................................................................................ 125.1. Lista dostupnih prekidaa komandne linije ............................................................................... 1635.2. Lista SubVCRev kodova greaka ............................................................................................ 1635.3. Lista dostupnih kljunih rei .................................................................................................. 1635.4. COM/automatizacija metode podrane ..................................................................................... 165C.1. Ulazi menija i njihove vrednosti ............................................................................................. 179D.1. Lista dostupnih komandnih opcija .......................................................................................... 181D.2. Lista raspoloivih opcija ....................................................................................................... 183

  • xi

    Predgovor

    Kontrola verzija je umetnost upravljanja izmenama informacija.To je dugo bio kritian alat za programere, kojitipino troe svoje vreme pravei male izmene softvera zatim vraaju ili proveravaju te izmene sledeeg dana.Zamislimo tim programera koji rade istovremeno - i moda ak simultano na vrlo slinim fajlovima! - i vi moetevideti zato je potreban dobar sistem da upravljanje potencijalnim haosom.

    1. ta je TortoiseSVN?TortoiseSVN je besplatan Vindouz klijent otvorenog koda za Apache Subversion sistem kontrole verzija. Takoda TortoiseSVN rukuje fajlovima i imenicima u toku vremena. Fajlovi su smeteni u centralno spremite. Spremitelii na obian fajl server osim to pamti svaku promenu uraenu na fajlovima i imenicima. Ovo vam omoguavada vratite staru verziju svojih fajlova i pregledate istoriju promena podataka i ko ih je menjao. To je zbog egamnogi ljudi misle da je Subverzija i sistem kontrole verzija vrsta vremenske maine.

    Neki sistemi kontrole verzija su takoe softver sistemi upravljanja konfiguracijom (SUK). Ovi sistemi suspecijalno prilagoeni da upravljaju stabla izvornog koda, i imaju mnoge osobine specifine za razvoj softvera- kao to je prirodno razumevanje programskih jezika, ili snabdevanje alatima za izradu softvera. Subverzija,meutim, nije jedan od tih sistema; ona je opti sistem koji se moe koristiti da upravlja svaki skup fajlova,obuhvatajui i izvorni kod.

    2. TortoiseSVN osobineta ini TortoiseSVN tako dobrim Subverzionim klijentom? Ovde je kratka lista osobina.

    Integracija koljke

    TortoiseSVN se bezavno integrie u Vindouz koljku (tj. pretraiva). Ovo znai da moete nastaviti rad saalatom sa kojim ste ve familijarni. Vi ne morate da ulazite u drugaiju aplikaciju svaki put kada su vampotrebne funkcije iz kontrole verzija!

    I niste ak ni obavezni da koristite Vindouz Eksplorer. TortoiseSVNov kontekst meni radi u mnogim drugimfajl menaderima, i u Fajl/Otvori dijalogu koji je zajedniki za veinu standardnih Vindouz aplikacija. Vitreba, meutim, imati na umu da TortoiseSVN namerno razvijen kao proirenje za Vindouz Eksplorer. Zbogtoga je mogue da u drugim aplikacijama integracija nije kompletna i npr. ikone za prekrivanje moda neebiti prikazane.

    Ikone prekrivaiStatus svakog verzionisanog fajla i foldera oznaen je prekrivanjem ikonom. Na taj nain moete videti statusvae radne kopije.

    Grafiki korisniki interfejsKadalistate izmene fajla ili foldera moete kliknuti na reviziju da vidite komentare za to urezivanje. Takoemoete videti listu izmenjenih fajlova - samo dvostruko kliknite na fajl da vidite tano ta je promenjeno.

    Dijalog urezivanja lista sve stavke koje e biti ukljuene u urezivanju,i svaka stvka ima ekboks tako damoete izabrati stavke koje elite da ukljuite. Neverzionisani fajlovi mogu takoe biti izlistani, usluaju dazaboravite da dodate tajnovi fajl.

    Lak pristup Subverzionim komandama.Sve Subverzione komande su dostupne iz eksplorerovog kontekstnog menija. TortoiseSVN dodaje svojsubmeni onde.

  • Predgovor

    xii

    Kako je TortoiseSVN Subverzioni klijent, mi bismo voleli da prikaemo neke osobine same Subverzije:

    Verzionisanje folderaCVS prati samo istoriju individualnih fajlova, dok Subverzija implementiravirtualni verzionisani fajlsistemkoji belei promene celog stabla foldera prekovremeno. Fajlovi i imenici su verzionisani. Kao reziltat, postojena klijent-strani premesti i kopiraj komande koje rade na fajlovima i imenicima.

    Atomsko urezivanjeUrezivanje ili ide u spremite kompletno, ili nita. Ovo omoguava programerima da naprave i ureu izmenekao logike delove.

    Verzionisani metapodaciSvaki fajl i folder ima dodat nevidljivi skup osobina. Vi moete smisliti i smestiti bilo koji klju/vrednostpar koji elite. Osobine se verzioniu prekovremeno, upravo kao sadraji fajla.

    Izbor mrenih slojevaSubverzija ima apstraktnu ideju pristupa spremitu, inei ga lakim da ljudi inplementiraj u nove mrenemehanizme.Subverzioni napredni mreni server je modul za Apa veb server, koji govori varijantu HTTPzvanu VebDAV/DeltaV. To daje Subverziji veliku prednost u stabilnosti i operatibilnosti, i omoguava raznekljune osobine besplatno: autentikaciju, autorizaciju, kompresiju, i pretraivanje spremita, na primer. Mali,samostalni Subverzioni server proces je takoe dostupan. Ovaj server govori uopbiajeni protokol koji moebiti lako provuen kroz ssh.

    Skladno rukovanje podacimaSubverzija izlae fajl razlike koristei binarni diferencijalni algoritam, koji radi identino na tekst (ljudskiitljivim) i binarnim (ljudski neitljivim) fajlovima. Oba tipa fajlova su smetena jednako komprimovani uspremitu, i razlike su prenete u oba smera kroz mreu.

    Efikasno grananje i oznaavanjeCena grananja i oznaavanja ne treba da bude proporcionalno veliini projekta. Subverzija stvara grane ioznake jednostavnim kopiranjem projekta, koristei mehanizam slian vrstim linkovima. Zato ove operacijeuzimaju veoma mali, konstantan iznos vremena, i veoma mali prostor u spremitu.

    3. LicenceTortoiseSVN je projekat otvorenog koda razvijen pod GNU Opta javna licenca (GPL). To je slobodno za skidanjei slobodno za korienje, ili lino ili komercijalno, na bilo kom broju PCja.

    Iako veina ljudi samo skine instalaciju, vi moete imati pun pristup izvornom kodu programa. Moete ga potraitina linku http://code.google.com/p/tortoisesvn/source/browse/. Tekua linija razvoja locirana je na /trunk/realizovana verzija je pod /tags/.

    4. RazvojI TortoiseSVN i Subverzija su razvijeni od zajednice ljudi koji rade na tim projektima. Oni dolaze iz raznih zemaljaiz celog sveta i udruuju se da zajedno naprave izvanredan program.

    4.1. TortoiseSVN istorija

    U 2002 Tim Kemp je naao da je Subverzija bila jako dobar sistem kontrole verzija, ali je nedostajao dobar GUIklijent. Ideja za Subverzioni klijent kao Vindouz integrisanu koljku inspirisana je slinim klijentom za CVSimenom TortoiseCVS. Tim je prouavao izvorni kod TortoiseCVS i koristio ga kao osnovu za TortoiseSVN. Onje zatim pokrenuo projekat, registrovao domen tortoisesvn.org istavio izvorni kod onlajn.

    U to vreme, Stefan King je traio dobar i besplatan sistem kontrole verzija i naao Subverziju i izvorni kod zaTortoiseSVN. Poto TortoiseSVN jo nije bio spreman za korienje on se pridruio projektu i poeo da programira.Uskoro je prepisao veinu postojeeg koda i poeo da dodaje komande i mogunosti, sve do take gde nita odoriginalnog koda nije ostalo.

    http://code.google.com/p/tortoisesvn/source/browse/
  • Predgovor

    xiii

    to je Subverzija postajala stabilnija privlaila je sve vie korisnika koji su poeli da koriste TortoiseSVN kaoSubverzioni klijent. Korisnika osnova raste brzo (i jo uvek raste svaki dan). To je od kad je Lube Onken ponudioda pomogne sa lepim ikonama i logom za TortoiseSVN. On vodi brigu o vebsajtu i upravlja sa mnogo prevoda.

    4.2. Zahvalnosti

    Tim Kempza pokretanje TortoiseSVN projekta

    Stefan Kungza teak rad da se TortoiseSVN dovede do onog ta je sada, i njegovo vostvo u projektu

    Lube Onkenza lepe ikone, logo, lovljenje bagova, prevoenje i upravljanjem prevodima

    Simon Lardza odravanje dokumentacije

    Stefan Fuhrmanza ke dnevnika i revizioni graf

    Knjiga Subverzijaza veliki uvod u Subverziju i poglavlje 2 koje smo kopirali ovde

    Tigris stil projekatza neke stilove koje su preuzete u ovu dokumentaciju

    Nai dopisniciza zakrpe, izvetaje o bagovima i nove ideje, i za pomaganje drugima odgovaranjem na pitanja na naojpotanskoj listi.

    Nai donatoriza mnogo asova uivanja u muzici koju su nam slali

    5. Vodi za itanjeOva knjiga je napisana za poznavaoce kompjutera koji ele da koriste Subverziju da upravljaju svojim podacima,ali vie vole da koriste GUI klijent umesto programa koji to rade iz komandne linije. Kako je TortoiseSVNproirenje vindouz koljke uzima se da je korisnik upoznat sa vindouz pretraivaem i zna kako ga koristiti.

    Ovaj Predgovor objanjava ta jeTortoiseSVN, malo oTortoiseSVN projektu i zajednicu ljudi koji rade na njemu,i uslove licence za korienje i distribuciju.

    Poglavlje 1, Krenimo od poetka objanjava kako instalirati TortoiseSVN na va PC, i kako pokrenuti ispravnokorienje.

    U Poglavlje 2, Osnovni Kontrola-Verzija Koncepti dali smo kratak uvod u Subverzija revizioni kontrolni sistem kojipokriva TortoiseSVN. Ovo je pozajmljeno iz dokumentacije za projekat Subverzije i objanjava rezliite pristupekontroli verzija, i kako Subverzija radi.

    Poglavlje Poglavlje 3, Spremite objanjava kako podesiti lokalno spremite, koje je korisno za testiranjeSubverzije i TortoiseSVN koristei jedan PC. Ono takoe objanjava neto malo o administriranju spremita toje relevantno za spremita locirana na serveru.Postoji ovde i deo kako da podesite server ako vam je potreban.

    Poglavlje 4, Vodi dnevnog korienja je najvaniji deo jer objanjava sve glavne mogunosti TortoiseSVN i kakoih koristiti. U obliku je tutorijala, poinje proverom radne kopije, njenim izmenama, urezivanjem vaih izmenaitd. Nastavlja se naprednijim temama.

    Poglavlje 5, SubVCRev program je poseban program pridodat TortoiseSVN koji moe izdvojiti informacije iz vaeradne kopije i upisati ih u fajl. Ovo je korisno za ukljuivanje razvojne informacije u va projekat.

  • Predgovor

    xiv

    Dodatak B, Kako da ja... deo odgovara na neka opta pitanja o primeni zadataka koji nisu eksplicitno pokrivenibilo gde.

    Deo Dodatak D, Automatizovanje TortoiseSVN prikazuje kako TortoiseSVN GUI dijalozi mogu biti pozvani izkomandne linije. Ovo je korisno za pravljenje skripta tamo gde je jo potrebna interakcija korisnika.

    Dodatak E, Komandna Linija Interfejs Unakrsne Reference daje korelaciju izmeu TortoiseSVN komandi injihovih ekvivalenata u Subverzijinog klijenta komandne linije svn.exe.

    6. Terminologija koriena u ovom dokumentuDa bi se olakalo itanje dokumenata imena svih ekrana i Menija u TortoiseSVN su obeleena u razliitom pismu.Na primer Dialog dnevnika

    Izbor menija prikazan strelicom. TortoiseSVN Dnevnik prikaza znai: izaberi Dnevnik prikaza iz TortoiseSVNkontekst menija.

    Tamo gde se lokalni kontekstni meni pojavljuje u okviru TortoiseSVN dijaloga, to je prikazano kao: KontekstniMeni Sauvaj Kao ...

    Dugme korisnikog interfejsa prikazano je kao: PritisniDA da nastavi.

    Korisnike akcije su prikazane korienjem zacrnjenog pisma. Alt+A: pritisnite Alt-taster na tastaturi i dok gadrite pritisnite A-taster. Desno vuenje: pritisnite desno dugme mia i dok ga drite vucitestavke na novu lokaciju.

    Sistemski izlaz i ulaz sa tastature oznaen je sa razliitim pismom takoe.

    Vano

    Vane zabeleke su oznaene ikonom.

    Savet

    Saveti koji vam ine ivot lakim.

    Upozorenje

    Mesta gde treba da brinete ta radite.

    Upozorenje

    Gde je izuzetna briga preduzeta. Unitavanje podataka ili druge loe stvari mogu se javiti ako seupozorenja ignoriu.

  • Predgovor

    xv

  • 1

    Poglavlje 1. Krenimo od poetkaOvaj pargraf pomae ljudima koji bi da pronau ta je uopte TortoiseSVN i daje im test drajv. On objanjava kakoinstalirati TortoiseSVN i podesiti lokalno spremite, i provodi ih kroz veinu obino korienih operacija.

    1.1. Instaliranje TortoiseSVN

    1.1.1. Zahtevi sistema

    TortoiseSVN radi na Vindouz HP sa servis pakom 3 ili viim operativnim sistemima i dostupan je na 32-bitnimi 64-bitnim sistemima. Instalacija za 64-bitni Vindouz ukljuuje, takoe, 32-bitno proirenje. to znai da nemorate instalirati 32-bitnu verziju posebno da biste dobili TortoiseSVN kontekst meni i prekriva u 32-bitnimaplikacijama.

    Vano

    Ako koristite Vindous HP, vi morate imati instaliran najmanje servis pak 3. To nee raditi ako jonemate intstaliran taj SP!

    Podrka za Vindouz 98, Vindous ME i Vindous NT4 izbaena je u verziji 1.2.0 i Vindous 2000 i HP do SP2 podrkaje izbaena u 1.7.0. Moete jo uvek skinuti i instalirati stariju verziju ako vam je potrebna.

    1.1.2. Instalacija

    TortoiseSVN dolazi sa instalatorom koji je lak za upotrebu. Dvostruko kliknite na instalator fajl i pratite instrukcije.Instalator e brinuti o ostalom. Nemojte zaboraviti da rebutujete sistem posle instalacije.

    Vano

    Potrebne su vam Administratorske privelegije da instalirate TortoiseSVN.

    Jeziki paketi su dostupni i prevode TortoiseSVN korisniki interfejs u mnogo razliitih jezika. Molim proveriteDodatak G, Jeziki paket i provera sintakse za vie informacija kako da ih instalirate.

    Ako naiete na neki problem pri ili posle instalacije TortoiseSVN opiite ga na naem onlajn FAK na http://tortoisesvn.net/faq.html.

    1.2. Osnovni konceptiPre nego se zaglavimo u radu sa pravim fajlovima, vano je pogledati kako Subverzija radi i termine koje koristi.

    SpremiteSubverzija koristi centralnu bazu podataka koja sadri sve vae virzija-kontrolisane fajlove sa njihovomkompletnom istorijom. Baza podataka je oznaena kao spremite. Spremite normalno ivina fajl serveru kojiizvravaSubverzioni program koji snabdeva sadrajem Subverzione klijente (kao TortoiseSVN) na zahtev.Ako samo sigurnosno kopirate jednu stvar, sigurnosno kopirajte vae spremite kao definitivnu glavnu kopijusvihvaih podataka.

    Radna kopijaOvde obavljate pravi posao. Svaki saradnik ima sopstvenu radnu kopiju, ponekad poznatu kao sendboks nalokalnopm PC. Moete povui poslednjuverziju iz spremita, raditi na njoj lokalno bez uticaja bilo koga, zatimkada ste zadovoljni izmenama uradite urezivanje nazad u spremite.

    Subverziona radna kopija ne sadri istoriju projekta, ali sadri kopiju fajlova kako postoje u spremitu prenego ste poeli da radite izmene. Ovo znai da je lako proverititano ta ste izmenili.

    http://tortoisesvn.net/faq.htmlhttp://tortoisesvn.net/faq.html
  • Krenimo od poetka

    2

    Takoe treba da znate gde nai TortoiseSVN zato to nema mnogo da se vidi iz Start menija. Ovo je zato toTortoiseSVN proirenje koljke, tako pre svega, pokree Vindouz pretraiva. Desno klikni na folder u pretraivaui videete nove ulaze u kontekst meniju kao:

    Slika 1.1. TortoiseSVN meni za neverzionisani folder

    1.3. Idi na test drajvOvo poglavlje vam pokazuje kako da isprobateneke od esto korienih osobina malih test spremita. Priridno jeda on ne objanjava sve - to je samo Brzi Poetni Vodi u stvari. Kada ga pokrenete treba da iskoristite vremeda proitate ostatak ovog vodia, koji vas vodi kroz stvari sa mnogo vie detalja. On takoe objanjava vie opodeavanju odgovarajueg Subverzionog servera.

    1.3.1. Kreiranje spremita

    Za realne projekte imate negde sigurno podeavanje spremita i Subverzioni server da ga kontrolie. Zbog ovogtutorijala nameravamo da koristimo Subverzione lokalne osobine spremita koje omoguavaju direktan pristupspremitu kreiranom na hard drajvu bez upotrebe servera.

    Najpre kreirajte novi prazan folder na vaem PC. On moe biti bilo gde, ali za ovaj tutorijal zvaemo ga C:\svn_repos. Zatim desni klik na novi folder i iz kontekst menija izaberite TortoiseSVN Kreirajte spremiteovde.... Spremite tada kreirano unutar foldera spremno je za korienje. Takoe emo kreirati uobiajenu internustrukturu foldera kliknuvi na Kreirajte strukturu foldera button.

    Vano

    Upotreba lokalnog spremita je veoma korisna za testiranje i razvoj ali, izuzev ako radite kaopojedinani saradnik na jednom PC, vi ete uvek koristiti odgovarajui Subverzioni server. Malekompanije dolaze u iskuenje da izbegnu radna podeavanju servera ve da se samo pristupispremitu na mrenoj podeli. Nikad to ne radite. Proitajte Odeljak 3.1.4, Pristupanje spremitu namrenom deljenom prostoru da naete zato je to loa ideja ikako podesiti server.

    1.3.2. Uvoenje projekta

    Sada imamo spremite, ali ono je potpuno prazno u ovom trenutku. Uzmimo da imamo skup fajlova u C:\Projects\Widget1 koje elimo dodati. Odimo do Widget1 foldera pomou Eksplorera i desni klik nanjega. Sada izaberemo TortoiseSVN Uvoz... to daje dijalog

  • Krenimo od poetka

    3

    Slika 1.2. Uvozni dijalog

    Subverziono spremite je referisano sa URL koji nam omoguava da specificiramo spremite bilo gde naInternetu. U ovom sluaju potrebna nam je taka na naem lokalnom spremitu koja ima URL file:///c:/svn_repos/trunk, gde dodajemo na projekat nazvan Widget1. Primetimo da ima 3 kosih crta posle file:i da se prave kose crte koriste unutar.

    Ostale vane osobine ovog dijaloga je Uvezi poruku boks koji vam dozvoljava da unesete poruku koja opisujeta radite. Kada doete pogledate kroz istoriju projekta, ove poruke urezivanja su vrednosni vodi koje izmenesu napravljene i zato. U ovom sluaju moemo rei neto jednostavno kao Uvoz Widget1 projekta. Kliknitena OK i folder je dodat u spremite.

    1.3.3. Preuzimanje radne kopije

    Sada imamo projekat u naem spremitu, potrebno nam je da kreiramo radnu kopiju za korienje u svakodnevnomradu. Primetimo da in uvoza foldera ne prebacuje taj folder u radnu kopiju. Subverzioni termin za kreiranjesvee radne kopije je Preuzimanje. Nameravamo da preuzmemo Widget1 folder naeg spremita u razvojnifolder na PC zvanom C:\Projects\Widget1-Dev. Kreirajte taj folder, zatim desni klik na njega i izaberiteTortoiseSVN Preuzimanje.... Unesite URL preuzimanja, u ovom sluaju file:///c:/svn_repos/trunk/Widget1 i kliknite na OK. Na razvojni folder je popunjen fajlovima iz tog spremita.

    Primetite da se pojava ovog foldera razlikuje od originalnogfoldera. Svaki fajl ima zelenuek markicu u levomdonjem uglu. Ovo su TortoiseSVN status ikone koje su prisutne samo u radnoj kopiji. Zeleno stanje indicira daje fajl neizmenjen prema verziji u spremitu.

    1.3.4. Izrada izmena

    Vreme da se uradi posao. U Widget1-Dev poinjemoda ureujemofajlove - recimo menjamo Widget1.c iReadMe.txt. Primetimo da su se prekrivai ikona na ovim fajlovima promenili u crveno, indicirajui da sulokalne izmene uraene.

    Ali kakvesu izmene? Desno kliknite na izmenjene fajlove i izaberite TortoiseSVN Diff... TortoiseSVN alat zaporeenje fajla pokree, prikazujui tano koje linijesu promenjene.

  • Krenimo od poetka

    4

    Slika 1.3. Pregleda fajl razlika

    Dobro, mi smo sreni sa izmenama, uskladimo spremite. Ova akcija je oznaena kao Urezivanje izmene.Desni klik na Widget1-Dev folder i izaberimo TortoiseSVN Urezivanje. Dijalog urezivanja listaizmenjenefajlove sa ekboksom. Moete eletida izaberete samo podskup ovih fajlova, ali u ovom sluaju idemo da ureemoizmene na oba fajla. Unesite poruku da opiete koje izmene su obuhvaene i kliknite na OK. Dijalog napredovanjaprikazuje fajlove poslatih u spremite i zavrenih.

    1.3.5. Dodavanje jo fajlova

    Kako projekat raste bie vam potrebno dadodate nove fajlove - recimo da dodajete neke nove osobine u Extras.ci dodajete reference u postojei Makefile. Desno kliknite na folder i TortoiseSVN Dodaj. Dodaj dijalogsada prikazuje sve neverzionisane fajlove i moeteizabrati koji elite da dodate. Drugi nain je da se dodaju fajlovidesnim klikom na sam fajl i izborom ortoiseSVN Dodaj.

    Sada kada odete u folder urezivanja, novi fajl je prikazan kao Dodat ipostojei fajl kao Izmenjen. Primetimo damoete dvostruko kliknuti na izmenjeni fajl da proverimo tano koje izmene su uraene.

    1.3.6. Pregled istorije projekta

    Jedan od najkorisnijih osobina TortoiseSVN je dijalog dnevnika. On prikazuje listu svih urezivanja koje ste uradiliza fajl ili folder, i prikazuje detaljne poruke urezivanja koje ste uneli ;-)

  • Krenimo od poetka

    5

    Slika 1.4. Dijalog dnevnika

    OK, ovde sam vas malo obmanuo i koristio sliku ekrana iz TortoiseSVN spremita.

    Gornji panel prikazuje listu revizija urezanih sapoetkom poruke urezivanja.Ako izaberete jednu od ovih revizija,srednji panel e prikazati celu poruku dnevnika za revizijui donji panel e prikazati listu izmenjenih fajlova ifoldera.

    Svaki od ovih panela ima kontekst meni koji vas snabdeva sa mnogo naina korienja informacija. U donjempanelu moete vostruko kliknuti na fajl da vidite tano ta je promenjeno u toj reviziji. ProitajteOdeljak 4.9,Revizioni dijalog dnevnika da dobijete celu priu.

    1.3.7. Ponitavanje izmena

    Jedna osobina svih sistema kontrole revizija je da vam omoguavaju vraanje izmena koje ste ranije uradili. Kaoto oekujute, TortoiseSVN olakava pristup tome.

    Ako elite da proitate izmene koje jo nisu urezane i resetujete fajl na nain kakav je bio pre poetka ureivanja,TortoiseSVN Vrati je va prijatelj. Ovo odbacuje vae izmene (u korpu za otpatke, u ovom sluaju) i vraaurezanu verziju sa kojom ste startovali. Ako elite da proitate samo neke izmene moete koristiti TortoiseMergeda pregledate razlike i selektivno vratite izmenjene linije.

    Ako eliteda vratite efekte posebne revizije, ponite sa dijalogom dnevnika i naite okrivljene revizije. IzaberiteKontekst meni Vraanje izmena iz ovihrevizija i ove izmene e biti vraenje.

    1.4. Pomeranje na ...Ovaj vodi daje brz obilazak nekih TortoiseSVN najznaanijih i najkorisnijih osobina, ali svakako postoji vieto nije pokriveno. Mi vrsto preporuujemo da uzmete malo vremenada proitateostatak ovog uputstva, posebnoPoglavlje 4, Vodi dnevnog korienja to vam daje vie detalja za dan-za-dan operacije.

  • Krenimo od poetka

    6

    Imali smo mnogo problema da osiguramo da bude informativno i lako za itanje, ali mi prepoznajemo da jetomnogo od toga! Iskoristite vreme i ne budite uplaeni da pokuate to u test spremitu. Najbolji nain da se nauije da se to koristi.

  • 7

    Poglavlje 2. Osnovni Kontrola-VerzijaKoncepti

    Ovo poglavlje je malo izmenjena verzija istog poglavlja u Subverzionoj knjizi. Onlajn verzija Subverzione knjigeje dostupna ovde:http://svnbook.red-bean.com/.

    Ovo poglavlje je kratak, neobavezan uvod u Subverziju. Ako ste novi u kontroli verzija, ovo poglavlje je sigurno zavas. Poinjemo diskusijom o optem konceptu kontrole verzija, rad nas vodi u specifine ideje unutar Subverzije,i prikazuje neke jednostavne primere Subverzije pri korienju.

    Uprkos tome to primere u ovom poglavlju prikazuju ljudi koji dele kolekcije izvornog koda programa, imajte naumu da Subverzija moe upravljati bilo kojom vrstom kolekcija fajlova - nije ograniena na pomo kompjuterskimprogramerima.

    2.1. SpremiteSubverzija je centralizovan sistem za deljenje informcija. U sri je spremite, koje je centralno stovarite podataka.Spremite smeta informacije u obliku fajlsistem stabla - tipina hijerarhija fajlova i foldera. Bilo koji broj klijenataspaja se na spremite i ita ili upisuje u te fajlove. Upisivanjem podataka klijent omoguava da informacija budedostupna drugima; itanjem podataka klijent prima informacije od drugih.

    Slika 2.1. Tipini klijent/server sistem

    Dakle zato je ovo interesantno? Zato to je ovo pesma od definicije tipinog fajl servera. I svakako, spremiteje vrsta fajl servera, ali nije to va uobiajen soj. ta ini Subverziono spremite specijalnim je da ono pamti sveizmene ikad upisane u njega: sve izmene svakog fajla, i ak izmene samog stabla foldera, kao to je dodavanje,brisanje, i preureenje fajlova u foldera.

    Kada klijent ita podatke iz spremita, on normalno vidi samo zadnju verziju stabla fajlsistema. Ali klijent takoeima mogunost da vidi prethodno stanje fajlsistema. Na primer, klijent moe postaviti istorijska pitanja kao, ta jeovaj folder sadrao prole srede?, ili koja je poslednja osoba koja je menjala ovaj fajl, i koje izmene je uradila?Ovo je vrsta pitanja koja su srce svakog sistema kontrole verzija: sistema koji su dizajnirani da aktivno belee iprate izmene podataka.

    2.2. Modeli verzionisanjaSvi sistemi kontrole verzija imaju da ree iste osnovne probleme: kako e sistem omoguiti korisnicima da deleinformacije, ali da ih sprei da nehotino koraaju stopama jedni drugih? Veoma je lako da jedni drugima korisniciincidentno prepiu promene u spremitu.

    2.2.1. Problem Fajl-Deljenja

    Zamislimo ovaj scenario: pretpostavimo da imamo dva saradnika, Hari i Sali. Svaki odlui da uredi isti fajl izspremita u isto vreme. Ako Hari prvi sauva svoje izmene u spremite, tada je mogue (nekoliko trenutaka kasnije)

    http://svnbook.red-bean.com/
  • Osnovni Kontrola-Verzija Koncepti

    8

    da ih Sali nehotice prepie svojom novom verzijom fajla. Poto Harijeva verzija fajla nee biti izgubljena zauvek(jer sistem pamti sve promene), sve promene koje je uradio Hari nee biti prisutne u Salinoj novoj verziji fajla, jerona nije videla Harijeve izmene na poetku rada. Harijev rad je efektivno izgubljen - ili u najmanjem nedostaje uzadnjoj verziji fajla - i verovatno mimo plana. Ovo je defintivno situacija koju elimo da izbegnemo.

    Slika 2.2. Kako izbei problem

    2.2.2. Zakljuaj-Menjaj-Otkljuaj reenje

    Mnogi sistemi kontrole verzija koriste zakljuaj-izmeni-otkljuaj model da oznae ovaj problem, to je veomajednostavno reenje. U takvim sistemima, spremite dozvoljava samo jednoj osobi da menja fajl u isto vreme. PrvoHari mora zakljuati fajl pre nego to moe da ga menja. Zakljuavanje fajla je mnogo slino pozajmljivanju knjigeiz biblioteke; ako Hari ima zakljuani fajl, onda Sali ne moe da napravi bilo kakvu izmenu na njemu. Ako onapokua da zakljua fajl spremite e zabraniti zahtev. Sve to moe uraditi je da ita fajl i eka da Hari zavri svojeizmene i otkljua fajl. Kada Hari otkljua fajl, on ga vraa i Sali ga moe uzeti zakljuavanjem i da ga ureuje.

  • Osnovni Kontrola-Verzija Koncepti

    9

    Slika 2.3. Zakljuaj-Menjaj-Otkljuaj reenje

    Problem sa zakljuaj-izmeni-otkljuaj modelom je da je pomalo restriktiv i esto postaje prepreka za korisnike:

    Zakljuavanje moe da napravi administrativni problem. Ponekad Hari e zakljuati fajl i zaboraviti na njega.Meutim, poto Sali jo eka da uredi fajl, njene ruke se vezane. I onda Hari odlazi na odmor. Sada Saliima da dobije od Administratora oslobaanje Harijevog zakljuavanja. Situacija se zavrava uzrokujui punonepotrebnog kanjenja i izgubljenog vremena.

    Zakljuavanje moe da prouzrokuje neeljenu serijalizaciju. ta ako Hari ureuje poetak tekst fajla, a Salijednostavno eli da uredi kraj istog fajla? Ove izmene se uopte ne preklapaju. Oni mogu lako da ureuju fajlistovremeno, nee doi do velike tete, uzevi da se izmene odgovarajue ujedine. NJima nije potrebno da seokrenu od ovakve situacije.

    Zakljuavanje moe da stvori lani oseaj sigurnosti. Uzmimo da Hari zakljua i ureuje fajl A, dok Saliistovremeno zakljua i ureuje fajl B. Pretpostavimo da A i B zavise jedan od drugog i da izmene uraene na bilokome semantiki nisu kompatibilne. Iznenada A i B ne rade vie zajedno. Zakljuavajui sistem nema snage dapredupredi problem - ak nekako daje oseaj lane sigurnosti. Lako je da Hari i Sali zamisle to zakljuavanjemfajlova, svako poinje siguran, izdvojen zadatak i to ga spreava da razmatra nekompatibilne izmene uinjeneranije.

    2.2.3. Kopiraj-Menjaj-Stopi reenje

    Subverzija, CVS i drugi sistemi kontrole verzija koriste kopiraj-menjaj-stopi model kao alternativu zakljuavanju.U ovom modelu svaki korisniki klijent ita spremite i kreira linu radnu kopiju fajla ili projekta. Korisnici ondarade paralelno, menjajui svoje privatne kopije. Finalno, privatne kopije se spajaju u novu, finalnu verziju. Sistemkontrole verzija esto posreduje u spajanju, ali ljudi su odgovorni da uine da sve bude korektno.

    Evo primera. Recimo da Hari i Sali kreiraju radne kopije istog projekta, kopiranjem iz spremita. Oni radeistovremeno, i prave izmene na istom fajlu A u okviru svojih kopija. Sali sauva svoje izmene u spremite prva.Kada Hari pokua da sauva svoje izmene kasnije, spremite ga informie da je njegov fajl A zastareo. Drugimreima, fajl A u spremitu ima neije izmene od zadnjeg kopiranja. Tako Hari pita svog klijenta da stopi bilo kojenove izmene iz spremita u njegovu radnu kopiju fajla A. Postoji ansa da Saline izmene ne prekrivaju njegove;tako da e imati oba skupa izmena integrisano, on sauva svoju radnu kopiju nazad u spremite.

  • Osnovni Kontrola-Verzija Koncepti

    10

    Slika 2.4. Kopiraj-Menjaj-Stopi reenje

    Slika 2.5. ...Kopiraj-Menjaj-Stopi nastavak

    Ali ta ako Saline izmene prekrivaju Harijeve izmene? ta tada? Ova situacija se zove konflikt, i to obino nijeveliki problem. Kada Hari trai od svog klijenta da stopi zadnje izmene u spremitu u njegovu radnu kopiju,njegova kopija fajla A je nekako oznaena da je u stanju konflikta: on e biti u mogunosti da vidi oba skupakonfliktnih izmena, i runo da izabere izmeu njih. Primetimo da softver ne moe automatski da rei konflikt;samo ljudi su sposobni da razumeju i urade neophodne inteligentne izbore. Jednom kad Hari runo rei preklapanjeizmena (moda diskusijom konflikta sa Sali!), on moe bezbedno da sauva stopljen fajl nazad u spremite.

  • Osnovni Kontrola-Verzija Koncepti

    11

    Kopiraj-menjaj-stopi model moe da zvui pomalo haotino, ali u praksi, radi ekstremno glatko. Korisnici mogu darade paralelno, nikada ne ekaju jedan drugog. Kada rade na istim fajlovima iskljueno je da njihove istovremeneizmene ne budu upisane; konflikti su retki. I iznos vremena uzet za reavanje konflikta je manji od vremenaizgubljenog zakljuavanjem sistema.

    Na kraju, sve dolazi u jedan kritian faktor: korisnika komunikacija. Kada je loa komunikacija izmeu korisnikasintaksni i semantiki konflikti rastu. Nema sistema koji e naterati korisnike da komuniciraju perfektno, i nemasistema koji moe da detektuje semantiki konflikt. Tako da nije poenta da se bude umiren lanim obeanjem dasistem zakljuavanja nekako predupreuje konflikt; u praksi, zakljuavanje izgleda spreava vie produktivnostnego bilo ta drugo.

    Postoji jedna obina situacija gde je zakljuaj-menjaj-otkljuaj model bolji, i to gde imate nestopive fajlove. Naprimer ako vae spremite sadri neke grafike slike, i dva oveka menjaju slike u isto vreme, nema naina da sete izmene spoje zajedno. Ili Hari ili Sali e izgubiti svoje izmene.

    2.2.4. ta Subverzija radi?

    Subverzija koristi kopiraj-izmeni-stopi reenje podrazumevano, i u mnogim sluajevima ovo je sve to vam jepotrebno. Meutim, od Verzije 1.2 Subverzija takoe podrava zakljuavanje fajlova, tako da ako imate nestopivefajlove, ili ako jednostavno forsirate politiku zakljuavanja preko uprave, Subverzija e jo omoguavati eljeneosobine.

    2.3. Subverzija u akcija

    2.3.1. Radna kopija

    Ve ste itali o radnoj kopiji; sada emo demonstrirati kako je Subverzioni klijent kreira i koristi.

    Subverziona radna kopija je obino stablo foldera u vaem lokalnom sistemu, koje sadri kolekciju fajlova. Vimoete urediti ove fajlove kako elite, i ako su fajlovi izvornog koda, moete od njih kompajlirati va programna uobiajen nain. Vaa radna kopija je vaa lina privatna radna povrina: Subverzija nee inkorporirati izmenedrugih ljudi, niti e uraditi vae promene dostupne drugima, sve dok joj eksplicitno ne kaete da to uradi.

    Kada ste napravili neke izmene u fajlovima u vaoj radnoj kopiji i proverite da to radi ispravno, Subverzija vamomoguava da komandama publikujete vae izmene drugim ljudima koji rade sa vama na vaem projektu (pisanjemu spremite). Ako drugi ljudi publikuju svoje izmene, Subverzija vam omoguava komandama za spajanje tihizmena u va radni folder (itanjem iz spremita).

    Radna kopija sadri i neke dodatne fajlove, kreirane i podrane od Subverzije, da pomognu u sprovoenju ovihkomandi. Posebno, vaa radna kopija sadri subdirektorijume po imenu .svn, takoe poznate kao administrativnedirektorijume radne kopije. Fajlovi u ovom administrativnom direktorjumu pomau Subverziji da prepozna kojifajlovi sadre nepublikovane izmene i koji fajl je zastareo u odnosu na izmene ostalih. Pre 1.7 Subverzija jeodravala .svn administrativne subdirektorijume u svakom verzionisanom direktorijumu vae radne kopije.Subverzija 1.7 uzima potpuno razliit pristup u svakoj radnoj kopiji sada ima samo jedan admisnistrativnisubdirektorijum koji je prvi potomak korena radne kopije.

    Tipino Subverziono spremite esto sadri fajlove (ili izvorni kod) za vie projekata; obino, svaki projekat jesubfolder u stablu fajlsistema u spremitu. U ovom ureenju korisnika radna kopija obino e korespondiratiposebnom podstablu spremita.

    Na primer, pretpostavimo da imate spremite koje sadri dva sofverska projekta.

  • Osnovni Kontrola-Verzija Koncepti

    12

    Slika 2.6. Fajlsistem spremita

    Drugim reima, koreni folder spremita ima dva podfoldera: paint and calc.

    Da biste dobili radnu kopiju morate preuzeti neko podstablo spremita. (Termin preuzeti moe zvuati kao netoto se radi zakljuavanjem ili rezervisanjem resursa, ali to nije to; to jednostavno kreira privatnu kopiju projektaza vas.)

    Pretpostavimo da ste napravili izmene u button.c. Kako .svn folder pamti datum izmene fajla i originalnisadraj, Subverzija vam moe rei da ste izmenili fajl.in publikovanja vaih izmena je najee poznat kaourezivanje (ili prijavljivanje) izmena u spremite.

    Da bi publikovali vae izmene drugima, moete koristiti Subverzionu komandu urei.

    Sada vae izmene u button.c su urezane u spremite; ako drugi korisnik proveri radnu kopiju /kalk, videevae izmene u zadnjoj verziji fajla.

    Pretpostavimo da imate saradnika Sali, ko proverava radnu kopiju /kalk u isto vreme kad i vi. Kada urezujetevae izmene u button.c, Salina radna kopija ostaje nepromenjena; Subverzija menja radnu kopiju samo nazahtev korisnika.

    Da bi uskladila svoj projekat Sali mora pitati Subverzilu da uskladi njenu radnu kopiju korienjem Subverzionekomande uskladi. Ovo e ukljuiti vae izmene u radnu kopiju isto kao to bilo koji drugi koji su urezani odprovere.

    Zabeleite da Sali ne treba da specifira koje fajlove uskladiti; Subverzija koristi informacije u .svn folderu, idalje informacije u spremitu, da odlui koje fajlove treba uskladiti.

    2.3.2. URL spremitaSubverzionom spremitu moe biti pristupljeno kroz mnogo razliitih metoda - na lokalnom disku, ili kroz raznemrene protokole. Mest spremita, meutim, je uvek na URL. URL ema oznaava metod pristupa:

    ema Pristupni metod

    file:// Direktni pristup spremitu na lokalnom mrenom ureaju.

    Tabela 2.1. URL pristup spremitu

  • Osnovni Kontrola-Verzija Koncepti

    13

    Za mnoge delove Subverzioni URLovi koriste standardnu sintaksu dozvoljavajui serverskim imenima brojevimaportova da budu specificirani kao deo URLa. file:// metod pristupa se normalno koristi za lokalni pristup,takoe moe se koristiti sa UNC putnjom do mrenog domaina. URL dakle uzima oblik file://hostname/path/to/repos. Za lokalnu mainu hostname deo URL se zahteva da nije prisutno ili da je localhost.Iz ovog razloga lokalna putanja se normalno javlja sa tri kose crte file:///path/to/repos.

    Takoe korisnici file:// eme na Vindouz platformama treba da koriste neoficijalnu standardnu sintaksu zapristup spremitu koja su na istoj maini, ali na razliitim ureajima od onog gde je klijentov radni ureaj. Svakaod sledee dve sintakse URL putanja e raditi gde je X drajv na kome spremite obitava.

    file:///X:/path/to/repos...file:///X|/path/to/repos...

    Primetimo da URL koristi obine kose crte ak i kad prirodni (ne URL) oblik putanje na Vindouzu koristi obrnutekose crte.

    Moete bezbedno pristupiti FSFS spremitu preko mrene podele, ali vi ne moete pristupiti BDB spremitu naovaj nain.

    Upozorenje

    Ne kreirajte Berkli DB spremite na mrenom deljenom prostoru. To ne moe postojati na udaljenomfajlsistemu. ak ni ako imate mreni drajv oznaen slovom drajva. Ako pokuate da koristite BerkliDB na mrenoj podeli rezultati su nepredvidljivi - moete videti misteriozne greke ili e proi mesecidok ne ustanovite da vaa baza podataka spremita sa puno greaka.

    2.3.3. Revizije

    Operacija svn urei publikuje izmene bilo kog broja fajlova i foldera kao jednu atomik transakciju. U vaoj radnojkopiji moete menjati sadraj fajlova, kreirati, brisati, preimenovati i kopirati fajlove i foldere i onda ureeteukupan skup izmena kao jedinicu.

    U spremitu savako urezivanje se trtira kao atomik transakcija: ili se ureu sve promene ili nijedna. Subverzijauva ovu atominost u sluaju pucanja programa ili sistema, mrenih problema i drugih akcija korisnika.

    Svaki put kada spremite pristupi urezivanju to kreiira novo stanje stabla fajlsistema nazvanog revisija. Svakarevizija se oznaava jedinstvenim prirodnim brojem koji je za jedan vei od broja prethodne revizije.Poetnarevizija svee kreiranog spremita oznaena je nulom i ne sadri nita osim praznog korenog foldera.

    Lep nain da se vizualizuje spremite je serija stabala. Zamislimo oblast revizionih brojeva, poevi od nule,razvuenih s leva u desno. Svaki revizioni broj ima fajlsistem stablo visi ispod njega i svako stablo je naznakakako spremite izgleda posle urezivanja.

  • Osnovni Kontrola-Verzija Koncepti

    14

    Slika 2.7. Spremite

    Globalni revizioni brojevi

    Drugaije nego kod veine drugih sistema kontrole verzija, Subverzioni revizioni brojevi se pojavljuju kaocela stabla, a ne individualni fajlovi. Svaki revizioni broj selektuje celo stablo, partikularno stanje spremitaposle nekog urezivanja izmena. Drugi nain razmiljanja o tome je da revizija N pretstavlja stanje fajlsistemaspremita posle Ntog urezivanja. Kada korisnik Subverzije govori o ``revisija 5 od foo.c'', on stvarnomisli ``foo.c kako se javlja u reviziji 5." Primetimo da uopte revizije N i M fajla nisu obavezno razliite.

    Vano je primetiti da radna kopija ne korespondira uvek bilo kojoj pojedinanoj reviziji u spremitu; ona moesadrati fajlove iz vie razliitih revizija. Na primer, pretpostavimo da preuzimate radnu kopiju iz spremita ijaje najskorija revizija 4:

    calc/Makefile:4 integer.c:4 button.c:4

    Trenutno ovaj radni folder odgovara tano reviziji 4 u spremitu. Meutim, pretpostavimo da izmenite button.c,i ureete izmene. Uzmimo da nije bilo drugih urezivanja, vae urezivanje kreira reviziju 5 spremita i vaa radnakopija sada izgleda ovako:

    calc/Makefile:4 integer.c:4 button.c:5

    Pretpostavimo to, u tom trenutku, Saki urezuje izmene integer.c, kreirajui reviziju 6. Ako koristite svnuskladi da dovedete vau radnu kopiju u usklaeno stanje to e izgledati ovako:

    calc/Makefile:6 integer.c:6 button.c:6

    Saine izmene integer.c se pojavljuju u vaoj radnoj kopiji i vae izmene su jo prisutne u button.c. Uovom primeru, tekst u Makefile je identian u revizijama 4,5 i 6, ali Subverzija e oznaiti vau radnu kopijuMakefile revizijom 6 da indicira da je jo tekua. Tako, posle uraenog istog obnavljanja na vrh vae radnekopije ona e generalno korespondirati tano jednoj reviziji u spremitu.

  • Osnovni Kontrola-Verzija Koncepti

    15

    2.3.4. Kako radna kopija prati spremite

    Za svaki fajl u radnom folderu Subverzija upisuje dva vana komada informacija u .svn/ administarativnu oblast:

    na koju reviziju je vaa radna kopija zasnovana )to se zove fajlova radna revizija), i

    vremenski marker zapisan kada se lokalna kopija zadnji put uskladila u spremitu.

    Dajui ove informacije, govorei spremitu, Subverzija moe rei koje od sledeih etiri statusa ima radni fajl:

    Neizmenjen i tekuiFajl je neizmenjen u radnom folderu, i nema izmena tog fajla pri urezivanju u spremite od njegove radnerevizije. Urezivanje fajla ne radi nita, i obnavljanje fajla ne radi nita.

    Lokalno izmenjen i tekuiFajl je izmenjen u radnom folderu i izmene nisu urezane u spremite od osnovne rebvizije. Postoje lokalneizmene koje jo nisu urezane u spremite, tako urezivanje fajla e pratiti publikovanje vaih izmena uspremite, a obnavljanje fajla nee uraditi nita.

    Nepromenjen i zastareoFajl nije izmenjen u radnom folderu ali je izmenjen u spremitu. Fajl bi trebalo da bude obnovljen da se uinisavremen sa javnom revizijom. Urezivanje fajla ne radi nita, a obnavljanje fajla uvodi zadnje izmene uvau radnu kopiju.

    Lokalno izmenjen i zastareoFajl je izmenjen u oba sluaja i u radnom folderu i u spremitu. Urezivanje fajla bie neuspeno sa grekomzastareo. Fajl se mora najpre uskladiti; sa komandomuskladi pokuae se spajanje javnih izmena sa lokalnimizmenama. Ako Subverzija ne moe potpuno da stopi na razuman nain automatski, ona ostavlja korisnikuda razrei konflikt.

    2.4. ZakljuakMi smo ovde pokrili odreeni broj osnovnih Subverzionih koncepata:

    Uveli smo oznaavanje centralnog spremita, klijentove radne kopije, i oblast revizionog stabla spremita.

    Vidli smo neke proste primere kako saradnici mogu da koriste Subverziju da publikuju i prime izmene od drugih,koristei 'kopiraj-menjaj-stopi' model.

    Govorili smo o nainu kako Subverzija prati i upravlja informacijama u radnoj kopiji.

  • 16

    Poglavlje 3. SpremiteNije bitno koji protokol koristite da pristupite spremitu, uvek vam je potrebno da kreirate bar jedno spremite.Ovo moe biti uraeno Subverzionom komandnom linijom ili klijentom sa TortoiseSVN.

    Ako jo niste kreirali Subverziono spremite, vreme je da to uradite sada.

    3.1. Kreiranje spremitaMoete kreirati spremite sa FSFS bekend ili sa starom Berkli bazom (BDB) format. FSFS format jegeneralno bri i laki za administriranje, i radi na mrenim deljenjeima i Vindous 98 bez problema. BDBformat se smatra mnogo stabilnijim jednostavno zato to se dugo koristi ali kako je FSFS u upotrbivie godina taj argument je sada slab. Proitaj Choosing a Data Store [http://svnbook.red-bean.com/en/1.8/svn.reposadmin.planning.html#svn.reposadmin.basics.backends] u Subverzionoj knjizi za vie informacija.

    3.1.1. Kreiranje spremita klijentom komandne linije1. Kreirajte prazan folder sa imenom SVN (npr. D:\SVN\), koji se koristi kao koren za sva spremita.

    2. Kreirajte drugi folder MyNewRepository unutar D:\SVN\.

    3. Otvorite komandni prompt (ili DOS -boks), preite u D:\SVN\ and type

    svnadmin create --fs-type bdb MyNewRepository

    or

    svnadmin create --fs-type fsfs MyNewRepository

    Sada imate spremite u D:\SVN\MyNewRepository.

    3.1.2. Kreiranje spremita sa TortoiseSVN

    Slika 3.1. TortoiseSVN meni za neverzionisani folder

    1. Otvorite vindouz pretraiva

    2. Kreirajte novi folder i nazovite ga npr. SVNRepository

    3. Desni klik na novo kreirani folder i izaberite TortoiseSVN Kreirajte spremite ovde....

    Spremite e biti kreirano unutar novog foldera. Nemojte ureivati te fajlove sami!!!. Ako dobijete bilo kakvugreku osigurajte da folder bude prazan i nije zatien od upisivanja.

    http://svnbook.red-bean.com/en/1.8/svn.reposadmin.planning.html#svn.reposadmin.basics.backendshttp://svnbook.