[OpenBSD]

Anoniminis CVS


Turinys


Kas yra anoniminis CVS?

Anoniminis CVS yra metodas lokaliai laikyti naujausią OpenBSD išeities tekstų medžio kopiją su visais pakeitimais. Galima ne tik stebėti naujausio kodo plėtojimą, bet ir leidinių klaidų pataisymus.

Pagrindinis anoniminio CVS privalumas lyginant su kitomis išeities tekstų atnaujinimo sistemomis yra tas, kad jis tiesiogiai dirba su centrine saugykla arba jos veidrodžiu. Tai reiškia, kad jūs turite pilną CVS komandų komplektą atnaujinimui ir jūsų ir kitų programuotojų pakeitimų apjungimams, diff bylų sudarinėjimui, pakeitimų stebėjimui ir kitokioms užklausoms.

OpenBSD projektas šiuo metu turi keturias pagrindines išeities tekstų saugyklas:

Tikroji anoniminio CVS naudojimosi stiprybė yra ta, CVS yra „tolerantiška“ išeities tekstų kontroliavimo sistema - ji atsižvelgia į pakeitimus, kurie buvo padaryti lokaliuose išeities tekstuose ir deda dideles pastangas, kad atnaujintų visą išeities tekstų medį vietoje to, kad paliktų jus su paslaptingų problemų sąrašu, kurios turėtų būti išspręstos norint tęsti.

Kas yra CVS?

CVS yra išeities tekstų kontroliavimo sistema, naudojama OpenBSD išeities tekstų medžiui tvarkyti. Ji sukuria centrinę saugyklą visiems oficialiai išleistiems failams ir jų ir pakeitimams, tuo pačiu metu leisdama programuotojams naudoti lokalias išeities teksto kopijas su lokaliais pakeitimais. Yra keli priėjimo prie CVS saugyklos lygiai:

Pagrindinė CVS stiprybė yra ta, kad ji turi galimybę vykdyti protingus kodo apjungimus (merge) centrinių saugyklų pakeitimuose, kuriuos jūs atliekate savo lokalioje saugyklos kopijoje. Tai reiškia, kad jeigu ką nors pakeičiate modulyje ir įvykdote atnaujinimą, jūsų pakeitimai nėra platinami, CVS stengiasi kaip galima geriau apjungti pakeitimus, padarytus centriniams išeities tekstams su pakeitimais, kuriuos jūs padarėte lokalioje kopijoje.

Jeigu pakeitimai negali būti visiškai apjungti CVS leidžia patiems juos apjungti.

Kriptografinių išeities tekstų siuntimas su cvs(1)

SVARBU: yra kelios kriptografinės programinės įrangos problemos, todėl kiekvienas turi būti susipažinęs su šia informacija:

Pradedant naudoti anoniminį CVS

Žinoma, jūs galite parsisiųsti visą išeities tekstų medį naudodami anoniminį CVS serverį, tačiau galite sutaupyti daug laiko ir duomenų srauto „iš anksto sukurdami“ savo saugyklos medį su išeities tekstais iš OpenBSD kompaktinės plokštelės arba FTP serverio. Tai ypač praverčia jeigu naudojate -stable šaką, kadangi dažniausia tik keli smulkūs failai pasikeičia tarp -release ir -stable.

Kad išpakuoti išeities tekstų medį iš kompaktinės plokštelės į /usr/src (laikome, kad kompaktinė plokštelė primontuota /mnt):

    # cd /usr/src
    # tar xzf /mnt/src.tar.gz
    # cd /usr
    # tar xzf /mnt/xenocara.tar.gz
    # tar xzf /mnt/ports.tar.gz
Išeities tekstas pateiktas parsisiuntimui FTP serveriuose yra padalintas į dvi dalis, kad sumažintų parsisiuntimo laiką tiems, kas dirba tik su viena išeities tekstų medžio dalimi. Tie du archyvai yra sys.tar.gz, kuriame talpinami failai, naudojami branduolio kūrimui, ir src.tar.gz, kuriame talpinami kitų „pagalbinių programų“ išeities tekstai. Paprastai jums reikės instaliuoti šiuos abu archyvus. Laikome, kad parsisiuntėte failus src.tar.gz, sys.tar.gz ir xenocara.tar.gz į /usr:
    # cd /usr/src
    # tar xzf ../sys.tar.gz
    # tar xzf ../src.tar.gz
    # cd /usr
    # tar xzf xenocara.tar.gz
    # tar xzf ports.tar.gz

Ne visi nori išpakuoti visus failų rinkinius, bet kadangi sistema privalo būti suderinama, jūs tikriausiai turėsite parsisiųsti visus medžius.

Jūs taip pat galite naudoti cvs(1), kad parsisiųstumėt („checkout“) išeities tekstų saugyklą. Tai aprašoma sekančioje dalyje.

Po archyvų išpakavimo /usr/src bus puiki vieta atnaujinti išeities tekstų medį, kurioje visos cvs(1) komandos veiks puikiai.

Išeities tekstų gavimas ir atnaujinimas su CVS

CVS buvo sukurta taip, kad būtų lengva gauti ir atnaujinti išeities tekstą. Visų pirma turite nuspręsti ar norėsite sekti -current, ar pataisymų šaką. Plėtojama laida turi visus atnaujinimus iki pat šios minutės, tuo tarpu pataisymų šakoje rasite oficialų leidinį, pataisymus iš klaidų sąrašo puslapio ir smulkesnių problemų pataisymus. Daugiau informacijos apie OpenBSD šakas rasite čia.

Kai nuspręsite kurią išeities teksto šaką naudoti, turėsite pasirinkti anoniminį CVS serverį. Serverių sąrašą galite rasti žemiau.

Kai pasirinkote anoniminį CVS serverį jau galite pradėti naudotis CVS. Turintys kompaktines plokšteles gali pradėti CVS išeities teksto siuntimą naudodami kompaktinę plokštelę, kaip buvo aprašyta aukščiau, kad gautų išeities tekstus į savo sistemą. Jeigu neturite kompaktinės plokštelės po ranka, naudokite siuntimo metodą kurį aprašėme žemiau.

Parsisiųsti portus galite panašiai kaip ir sistemą:

Aukščiau aprašytame pavyzdyje -q opcija nėra būtina, cvs pateikia mažiau detalesnę informaciją naudojant ją. Tiems, kurie nori pamatyti pilną informaciją ši opcija gali būti praleista.

Jeigu norite sukurti diff failą iš lokaliai pataisyto failo (šiuo atveju cd.c) paruošti pateikimui kartu su klaidos aprašymu:

	# cd /usr
	# cvs diff -u src/sys/scsi/cd.c > /tmp/patch

Daug platesnę informaciją apie CVS naudojimą rasite cvs(1) dokumentacijos puslapyje (įtrauktame kartu su CVS išeities tekstais).

Dėmesio: naudodami cvs turite pasirūpinti patys, kad darbinė direktorija būtų cvs medžio pagrindinė direktorija arba atskira direktorija, tokia, kaip /tmp. Tokios komandos, kaip „get“ gali sukurti subkatalogus darbiniame kataloge ir tolesni atnaujinimai gali rekursyviai ją plėtoti.

AnonCVS paslauga suteikia programuotojams šansą išmokti CVS operacijas ir aktyviai dalyvauti plėtojimo procese prieš gaunant skaitymo-rašymo priėjimą -- parodžius meistriškumą ir puikius rezultatus naturalu, kad šie dalyviai vėliau gauna ir teisę skaityti-rašyti. Taip pat, pateikiantys pataisymus, gali sukurti savo diff failus susietus su CVS medžiu, kurie palengvina integraciją.

cvs(1) pavyzdžiai

anoncvs serverio pavyzdinis panaudojimas būtų:

$ cd /tmp
$ cvs -d anoncvs@anoncvs.ca.openbsd.org:/cvs get src/sys/arch/sparc
     [nukopijuoja failus iš repozitorijos į kompiuterį]
$ cd src/sys/arch/sparc
$ cvs log locore.s
     [parodo pakeitimų istoriją pasirinktam failui]
$ cvs diff -bc -r1.1 -r1.5 locore.s
     [parodo pakeitimus tarp 1.1 ir 1.1 revizijų]

Anoniminių CVS serverių sąrašas

Dėmesio: jeigu jūsų serveris pateiktas su klaidinga informacija, prašome susisiekti su beck@openbsd.org

Jūs tikriausiai norėsite naudoti traceroute(8), kad surastumėte arčiausiai savęs esantį serverį. Apie serverių problemas turėtų būti pranešta konkretaus serverio prižiūrėtojui.

Jeigu lokalios taisykles neleidžia išeinamų prisijungimų į ssh prievadą pagal nutylėjimą (22), kai kurie serveriai leidžia susijungimus į kitus prievadus (dažniausiai 2022). Jie yra aprašyti sąraše aukščiau. Jeigu norite naudoti kitą prievadą, savo ssh kliento nustatymuose pridėkite „Host“ įrašą į failą $HOME/.ssh/config, pvz.:

	Host anoncvs.ca.openbsd.org
	    Port 2022

Anoncvs serverio kūrimas

Jeigu norite sukurti naują anoniminį CVS veidrodį ir padaryti jį prieinamu viešai prašome susisiekti su anoncvs prižiūrėtojais. Anoncvs veidrodis šiuo metu reikalauja apie 5GB disko vietos (jis ir toliau auga!), ir naudoja iki 32MB operatyviosios atminties kiekvienam anoncvs vartotojui (laikome, kad vartotojas atlieka sudėtingą operaciją; nors paprastesnės operacijos naudoja mažiau resursų, anoncvs vis tiek jų sunaudoja daug daugiau nei ftp). Tokie anoncvs serveriai turi turėti nepriekaištingą tinklo prieigą tai sričiai, kurią turėtų aptarnauti. Taip pat yra dokumentas, kuris aprašo anoncvs serverio sukūrimą.

Baigiamosios pastabos

Po išeities tekstų atnaujinimo turėtumėte perskaityti komentarus /usr/src/Makefile failo viršuje prieš bandymus kompiliuoti. Be to, turėtumėte sukompiliuoti naują branduolį prieš paleidžiant make build jei įmanoma. Atvejais kuriais tai neįmanoma prieš kompiliuojant branduolį turite perkompiliuoti ir instaliuoti config įrankį. Jeigu config GENERIC komanda neveikia, tikriausiai dėl netinkamos kompiliavimo sekos.

Svarbu pastebėti, kad medžio atnaujinimas iš leidinio į plėtojamą versiją perkompiliuojant išeities tekstus gali būti ganėtinai sudėtingas dėl priklausomybių, kurios ne visuomet aiškios. Taigi rekomenduojama pirma instaliuoti naujausią kasdieninį kompiliavimą (snapshot) prieš bandant kompiliuoti medį iš išeities tekstų.


OpenBSD www@openbsd.org
$OpenBSD: anoncvs.html,v 1.38 2013/01/23 15:57:13 ajacoutot Exp $