[OpenBSD]

Anonym CVS


Vad är anonym CVS?

Anonym CVS är en metod för att hålla din lokala kopia av OpenBSD-källkodsträdet uppdaterad mot ändringarna som görs i -current OpenBSD-källkoden.

Den största fördelen med anonym CVS över andra källkods-uppdateringstekniker är att denna jobbar direkt mot en central källkods-förvaringsplats eller spegel. Det betyder att du har ett stort antal CVS kommandon till ditt förfogande att använda för att kontrollera sammanslagningar och uppdatera dina ändringar med andra källkodsändringar och köra diff:ar, ändra historier och andra frågor mot den centrala förvaringsplatsen.

OpenBSD projektet har för tillfället tre stycken huvudförråd:

För att sammanfatta, den riktiga styrkan med att använda anonym CVS är att det är ett "tolerant" källkodskontrolleringssystem - det respekterar ändringar som du har gjort till ditt lokala arkiv och gör "sitt bästa" för att uppdatera hela ditt källkodsträd, istället för att lämna en lista till dig med svårbegripliga problem som måste lösas innan man kan fortsätta.

Vad är CVS?

CVS är källkodskontrolleringssystemet som används för att ta hand om OpenBSD:s källkodsträd. Det implementerar ett centralt "förråd" för all officiellt släppt källkod och alla ändringar, medans den tillåter utvecklare att tillhandahålla lokala kopior av källkoden med deras pågående ändringar. Utvecklare med skrivrättigheter kan commit:a ändringar direkt till OpenBSD:s källkodsträd, medans anonyma CVS användare har läsrättigheter och kan hålla deras lokala kopior av kod uppdaterad och göra förfrågningar mot det centrala förrådet.

CVS största fördel är att den klarar av att göra intelligenta ihopslagningar med ändringar till det centrala förrådet med förändringar som du gjort till ditt lokala arkiv. Det betyder att om du gör en ändring i en modul och kör en update, så kommer inte dina dina ändringar bli "bortblåsta", istället kommer CVS göra sitt bästa med att försöka slå samman ändringarna gjorda på det centrala förrådet med de ändringar som du har gjort på din lokala kopia.

I det fallet att ändringarna inte kan bli helt ihopslagna erbjuder CVS en "mjuk reservutväg" i den bemärkelsen att den erbjuder dig kommenterade ändringar i din lokala kopia, den bevarar en omodifierad version av din kopia och fortsätter att uppdatera andra källmoduler som du anhöll om.

Komma igång och använda anonym CVS

Den senaste versionen av CVS finns tillgänglig hos Cyclic. Versioner tidigare än 1.6 rekommenderas inte, och fungerar eventuellt inte. Om du redan har OpenBSD installerat, finns CVS inkluderat.

Folk som äger en OpenBSD CD kan ha sett CVS/ katalogen på den. Den finns där av ett skäl; CD:n har en checkout av OpenBSD:s src modul som är möjlig att fortsätta uppdatera ifrån. Genom att använda detta träd resulterar det i en mycket snabbare första CVS update istället för en färsk checkout av hela OpenBSD:s källkodsträd. Det finns två sätt att använda denna CD:

För personer som inte har en CD till hands, använd cvs(1) för att "checkout:a" källkoden till dig. Detta diskuteras i nästa sektion.

Efter det här kommer /usr/src/ vara en fin liten utchecknings-area där alla cvs(1) kommandon kommer att fungera som vanligt.

Använda CVS(1) till att få tag på och uppdatera ditt källkodsträd

CVS designades till att vara ett simpelt verktyg för att få tag på och uppdatera ens källkod, därför är det inte så mycket involverat för att kunna klara av att göra det. Du måste först bestämma dig om du vill följa current eller en patch-gren. Current trädet innehåller alla upp-till-minuten ändringar, medans en patch-gren innehåller en föredetta utgåva plus att patch:erna från errata redan är medtagna.

När du väl har bestämt vilket träd du vill följa, behöver du välja vilken anonym CVS server du ska använda. En lista på dessa servrar finns nedan. Notera dock, att det finns 3 olika sätt att komma åt dessa servrar.

OBSERVERA: - Till användare som önskar använda ssh; du måste först sätta CVS_RSH variabeln till platsen där ssh finns:

När du väl har valt vilken anonym CVS server du vill använda, och vilken metod, så kan du börja använda cvs. De av er som äger en CD-skiva har redan en CVS checkout på den, och ni kan börja använda den genom metoden som beskrevs ovan. Om du inte har en CD att tillgå, använd metoden nedan för att checka ut källkoden. Denna metod lägger OpenBSD källkodsträdet i /usr/src/.

Ovanstående kommer att checka ut current källkodsträdet. Många av er vill bara köra release-källkod, speciellt om du patchar ditt system. För att checka ut release-källkoden måste du specifiera ett märkord tillsammans med ditt kommando. Till exempel:

Eller OPENBSD_2_6 för 2.6, osv.

För tillfället är det bara OPENBSD_2_7 som innhåller utgåvokällkoden tillsammans med errata:n redan medtagen.

Tillgängliga anonyma CVS servrar

Det finns två nivåer av tillgång till källkodsträdet:

Läs-och-skrivrättigheter för utvecklare
Utvecklare som behöver commit:a ändringar till källkodsträdet måste ha ett konto på de centrala OpenBSDmaskinerna. Att få tillgång till det kommer vara ett naturligt resultat av att jobba med källkoden tillsammans med andra OpenBSD utvecklare. Om någon gör ett bra arbete och visar att de kan arbeta med teamet, kommer de få ett konto.
Läsrättigheter för alla
Vem som helst kan tillgå de skrivskyddade CVS-förråden. Dessa kopior av CVS-förrådet speglas ofta. För att använda en, sätt din CVSROOT miljövariabel till ett av följande värden:

Var god uppmärksamma noteringen om ssh vs. rsh nedan!

Observera: Om din server finns listad här med felaktig eller okänd information var vänlig kontakta beck@openbsd.org.

Du kan använda traceroute(8) för att finna den server som ligger närmast dig. Problem med en enskild server ska rapporteras till underhållaren av den specifika servern.

Få krypto-källkoden genom CVS(1)

OBSERVERA: Det finns en del frågor angående kryptografisk mjukvara som alla borde vara medvetna om:

Exempel på användning av CVS(1).

Ett exempel skulle kunna vara:

För att kunna använda en cvs "pserver" (en direkt tcp anslutning istället för att använda ssh eller rsh) måste du logga in först:

För att regelbundet uppdatera ditt källkodsträd genom anoncvs kan man göra på följande sätt:

För att använda ports, är det som med src:

I ovanstående exempel är -q valfritt, det är bara till för att minimera cvs utdata. För de av er som gillar att se flera skärmdumpar fulla med utdata, kan -q uteslutas.

Eller för att göra en diff mellan en lokalt patchad modul (här cd.c) för att inkludera i en buggrapport:

CVS(1) manualsidan (inkluderad med CVS källkoden) har mycket mer information om hur CVS kan användas.

X11 källkodsträd
Anoncvs speglarna bär också OpenBSD:s X11 källkodsträd. Du kan använda metoden ovan för att uppdatera ditt X11 källkodsträd från den andra CD:n. Antingen kopiera eller använd en union montering för att få X11 källkoden under /usr/X11/:

Efter detta borde /usr/X11/ vara redo för användning med cvs. Du kan till exempel uppdatera den till -current källkod genom (förutsatt att du redan satt CVSROOT miljövariabeln):

Varning: När du använder cvs bör du vara aktsam att den aktuella katalogen som du står i antingen är rooten av det träd som du refererar till, eller i ett separat ställe som /tmp/. Vissa kommandon som "get" kan skapa godtyckliga sub-träd i den aktuella katalogen, och en påföljande uppdatering kommer rekursivt fylla ut detta sub-träd.

Anoncvstjänsten ger gröngölingar till utvecklare en chans att lära sig CVS operationer och bli väl involverad i utvecklingsprocessen innan han börjar commit:a ändringar -- som ett resultat av uppvisade användbara skickligheter och resultat med hög kvalitet, kommer de naturligtvis senare att bli erbjudna utvecklar-rättigheter. Likaså, personer som erbjuder patchar kan skapa deras diff:ar relativt till CVS trädet, vilket innebär enklare integration.

Använda rsh(1) eller ssh(1)?

Anoncvs: rsh vs. ssh
Som standard använder CVS klienten rsh för att prata med CVS servern. Många av CVS siterna stödjer inte nu längre rsh på grund av säkerhetsskäl eller ett lokalt problem som brandväggar eller protokollemuleringar så som slirp, vilket hindrar dig från att använda rsh. Alternativet är att använda en "secure shell" anslutning genom antingen OpenSSH (*FRITT*) eller ssh (icke-kommersiellt och kommersiellt).

OpenBSD:s anoncvs förråd stödjer SSH1 protokollet, men inte SSH2 protokollet på grund av användandet av en "strikt icke-kommersiell användnings licenspolicy".

När ssh väl är installerat, sätt miljövariabeln CVS_RSH till att peka ut ssh (vanligtvis /usr/bin/ssh). Om din lokala site hindrar dig ifrån att ansluta utåt till port 22 (vilket ssh använder som standard), använd port 2022.

Bli inte frestad att slå på komprimering eftersom CVS redan komprimerar. Använd någonting som liknar det som följer i din $HOME/.ssh/config fil. Observera att alla anoncvs servrar tillåter ssh anslutningar på port 2022. Observera även att de flesta anoncvs servrar inte längre accepterar none-kryptometoden, eftersom den är inaktiverad i nyare versioner av ssh på grund av säkerhetsskäl.

	Host anoncvs.ca.openbsd.org
	    Port 2022

CVS kan vara lite pratig ibland, för att tysta ned den en aning kan du göra följande:

Om du önskar ändra från en CVS server till en annan (till exempel om din normala är nere, eller på grund av något annat skäl); miljövariabeln som tillåter dig göra det är:

Observera att du även måste använda dig av -d flaggan som nämndes ovan.

Spegla CVS förrådet med sup(1)

Användare som vill spegla själva OpenBSD CVS trädet kan nu göra så från anoncvs.usa.openbsd.org. Observera att detta är cvs trädet, inte ett ut-checkat källkodsträd. Det är bara anvädbart om du vill kunna göra snabba cvs operationer (diff, annotate, mm) eller om du har flera källkodsträd och du bara vill överföra data en gång (du kan sedan checka ut ett träd ifrån din lokala cvs spegel).

En exempel-supfil skulle kunna vara:

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

vilket skulle spegla cvs trädet till /home/cvs/ med sup data-filerna i /home/sup/. Hela OpenBSD cvsträdet är precis under en gigabyte i storlek.

Sätta upp en anoncvs spegel

Om du önskar bli en ny anoncvs spegel site, var god kontakta anoncvsadministratören. Anoncvs speglar kräver ungefär 1GB med disk, och använder upp till 4MB med swap per anoncvsanvändare (förutsatt att användaren gör en stor operation. Även om mindre operationer använder färre resurser tar anoncvs mycket mer än vad ftp eller sup gör). Sådanna anoncvs maskiner bör ha utmärkt nätverksåtkomst till den area som den är tänkt att serva. Ett dokument existerar som beskriver hur man kan sätta upp anoncvsservrar.

Slutord

Efter att ha uppgraderat ditt källkodsträd bör du läsa kommentarerna i början av /usr/src/Makefile innan du försöker dig på att bygga om systemet. Du bör också, om möjligt, bygga en ny kärna innan du gör en make build. I vissa fall kan det vara nödvändigt att bygga om och installera config tillbehöret innan du kan bygga kärnan. Om config GENERIC misslyckas, är det troligen skälet.

Det är viktigt att observera att en uppgradering från en release- till current-trädet genom att bygga om källkoden kan vara ganska svårt på grund av olika beroenden som ofta inte är helt självklara. Därför är det rekommenderat att du först installerar den senaste snapshot:en innan du ger dig i kast med att bygga ett helt träd ifrån källkod.


OpenBSD www@openbsd.org
Originally [OpenBSD: anoncvs.html,v 1.113 2000/07/17 21:27:23 brad Exp ]
$Translation: anoncvs.html,v 1.10 2000/07/19 18:14:34 javax Exp $
$OpenBSD: anoncvs.html,v 1.7 2000/07/24 07:45:41 wvdputte Exp $