[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.

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. Šis metodas parsiunčia OpenBSD išeities tekstus į /usr/src.

	# cd /usr; cvs checkout -P src

Komanda aukščiau parsiųs plėtojamą išeities tekstą. Daugelis iš jūsų norėsite tik pataisymų išeities tekstų šakos. Jeigu norite parsiųsti pataisymų šaką, turite nurodyti papildomą parametrą. Pavyzdžiui:

	# cd /usr; cvs checkout -P -rOPENBSD_4_7 src

Arba OPENBSD_4_6 jei siunčiate 4.6 leidinį ir pan.

Į OPENBSD_4_7 parametrą įeina leidinio išeities tekstai ir klaidų pataisymai.

Anoniminių CVS serverių sąrašas

Prašome atidžiai perskaityti ssh ar rsh prierašą žemiau!

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.

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:

cvs(1) pavyzdžiai

PASTABA: jeigu norite atnaujinti išeities teksto šaką (pvz., iš pataisymų) į current, jūs turėtumėte pridėti -A parametrą. Kai kurios senesnės OpenBSD dokumentacijos versijos rekomendavo naudoti šį parametrą daugelyje pavyzdžių. Mes neberekomenduojame jo ten, kur jis nebūtinas.

Anoniminio CVS naudojimo pavyzdys:

$ cd /tmp
$ cvs -d anoncvs@anoncvs.ca.openbsd.org:/cvs get src/sys/arch/sparc
    [kopijuoja failus iš saugyklos į jūsų kompiuterį]
$ cd src/sys/arch/sparc
$ cvs log locore.s
    [parodo pasirinkto failo pakeitimus]
$ cvs diff -bc -r1.1 -r1.5 locore.s
    [parodo pakeitimus tarp 1.1 ir 1.5 versijų]

Jeigu norite naudoti cvs ``pserver'' (tiesioginį TCP prisijungimą vietoje ssh arba rsh), turite pirma prisijungti:

$ cvs -d :pserver:anoncvs@anoncvs.ca.openbsd.org:/cvs login
(Logging in to anoncvs@anoncvs1.ca.openbsd.org)
CVS password: anoncvs
    [Įrašys eilutę į ~/.cvspass (failas gali būti pakeistas per CVS_PASSFILE)]
    [Eilutės pavyzdys iš mano ~/.cvspass parašius „blah“ aukščiau parodytame ]
    [pavyzdyje, slaptažodis yra:                                             ]
    [:pserver:anoncvs@anoncvs5.usa.openbsd.org:/cvs Au'yc                    ]
    [Po to kai prisijungsite KARTĄ naudojant CVSROOT visos komandos veiks.   ]
$ cvs -d :pserver:anoncvs@anoncvs.ca.openbsd.org:/cvs get ksrc-i386 ksrc-common
    [Parsiunčia TIK failus, reikiamus i386 branduolio kompiliavimui.]

Štai taip galite atnaujinti savo išeities tekstą:

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štą 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 programuotojas šansą išmokti CVS operacijas ir aktyviai dalyvauti plėtojimo procese prieš gaunant skaitymo-rašymo priėjimą -- kaip rezultatą parodžius meistriškumą ir puikų rezultatą. Taigi žmonės, pateikiantys pataisymus, gali sukurti savo diff failus susietus su CVS medžiu, kurie palengvina integraciją.

Ką naudoti, rsh(1) ar ssh(1)?

CVS palaiko tris priėjimo metodus tarp CVS serverio ir CVS kliento:

PASTABA: vartotojai kurie norite naudoti rsh, jūs pirma turite nustatyti CVS_RSH aplinkos kintamąjį, kuris nurodytų kelią į rsh(1) programą:

Pagal nutylėjimą OpenBSD CVS klientas naudoja ssh („saugų apvalkalą“: OpenSSH) prisijungimams prie CVS serverių.

Dauguma CVS serverių nebe palaiko rsh arba pserver dėl saugumo sumetimų. Tokios lokalios problemos, kaip blokavimas ugniasienių arba netobuli protokolo emuliatoriai (tokie kaip slirp) gali kliudyti rsh naudojimui. Tačiau jeigu rsh yra būtinybė galima nustatyti CVS_RSH aplinkos kintamąjį su pilnu keliu iki rsh (paprastai /usr/bin/rsh).

Jeigu lokalios taisykles neleidžia išeinamų prisijungimų į ssh prievadą pagal nutylėjimą (22), prievadas 2022 gali būti naudojamas vietoje jo. Tačiau ne visi anoniminiai CVS priima ssh prisijungimus į šį prievadą. Be to, daugelis anoncvs serverių nebe priima none šifro, kadangi jis išjungtas paskutinėse ssh versijose saugumo sumetimais. Taip pat nenaudokite programinio duomenų spaudimo: CVS tai daro pati.

Kad išvengti sunkumų, paminėtų aukščiau, reikia tinkamai sukonfigūruoti $HOME/.ssh/config:

	Host anoncvs.ca.openbsd.org
	    Compression no
	    Port 2022

CVS pateikia šiek tiek per daug pranešimų; galite jų išvengti naudodami aplinkos kintamąjį:

	$ export CVS_CLIENT_PORT=-1

CVS saugyklos veidrodžio kūrimas su sup(1)

Vartotojai, norintys sukurti OpenBSD CVS medžio veidrodį, gali tai daryti iš anoncvs.usa.openbsd.org arba anoncvs3.usa.openbsd.org (tai yra skirtingi serveriai). Pastebėkite, kad tai yra cvs medis, o ne parsiųstas išeities tekstas. Tai naudinga tik tada kai reikia atlikti greitas cvs operacijas (diff, annotate ir kt.) arba jeigu turite skirtingus išeities teksto medžius ir norite parsiųsti naujus duomenis tik vieną kartą (tuomet galite parsisiųsti medį iš savo lokalaus cvs veidrodžio).

Sup failo pavyzdys:

	cvs host=anoncvs.usa.openbsd.org hostbase=/ base=/home delete

Tai sukurtų cvs medžio veidrodį /home/cvs direktorijoje kartu su sup duomenų failais, patalpintais /home/sup. Pilnas OpenBSD cvs medis šiuo metu užima apytiksliai 3.5GB vietos ir, žinoma, toliau auga.

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 3.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 ar sup). 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ą.

Svarbūs užrašai

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.25 2010/11/17 22:55:05 ajacoutot Exp $