CVS och SVN: Skillnad mellan sidversioner

Från Lysators datorhandbok, den ultimata referensen.
Hoppa till navigering Hoppa till sök
m (Men åtta bitar ska vi väl ha, dumma firefox.)
mIngen redigeringssammanfattning
Rad 2: Rad 2:
använder det på Lysator.
använder det på Lysator.


<H2>Det gamla sättet, /lysator/cvsroot</H2>
==Det gamla sättet, /lysator/cvsroot==


Sedan länge finns en cvsroot som alla Lysiter på ett någorlunda enkelt
Sedan länge finns en cvsroot som alla Lysiter på ett någorlunda enkelt
sätt kan skapa ett repository i. Problemet med den lösningen är att
sätt kan skapa ett repository i. Problemet med den lösningen är att
endast Lysiter kan komma åt den, och anonym access är inte möjlig.
endast Lysiter kan komma åt den, och anonym access är inte möjlig.

<P>
Hur man i detalj använder /lysator/cvsroot beskrivs inte på denna
Hur man i detalj använder /lysator/cvsroot beskrivs inte på denna
oebbsida.
oebbsida.


<H2>Det nya sättet, lysCVS</H2>
==Det nya sättet, lysCVS==


Eftersom det verkade finnas ett behov av cvs-repository där man dels
Eftersom det verkade finnas ett behov av cvs-repository där man dels
kan ha med icke-Lysiter som utvecklare, och dels tillåta anonym
kan ha med icke-Lysiter som utvecklare, och dels tillåta anonym
access, utvecklades sommaren 2001 en lösning som tillåter detta.
access, utvecklades sommaren 2001 en lösning som tillåter detta.
<P>
Lösningen finns att beskåda bland annat i form av <a
href="http://cvs.lysator.liu.se">http://cvs.lysator.liu.se</a>.
Lösningen går under namnet <b>LysCVS</b>.
<P>
LysCVS har ett oebbaserat administrationsinterface där du själv som
vanlig användare kan skapa projekt, lägga till användare till detta
och så vidare. Nedan beskrivs hur du gör.


Lösningen finns att beskåda bland annat i form av http://cvs.lysator.liu.se/.
<H3>Att skapa nya projekt i LysCVS</H3>
Lösningen går under namnet '''LysCVS'''.

LysCVS har ett oebbaserat administrationsinterface där du själv som vanlig användare kan skapa projekt, lägga till användare till detta och så vidare. Nedan beskrivs hur du gör.

===Att skapa nya projekt i LysCVS===


LysCVS bygger på konceptet <i>projekt</i>. Varje projekt har en egen
LysCVS bygger på konceptet <i>projekt</i>. Varje projekt har en egen
CVSROOT och kan ha flera CVS-moduler. Det går bra att ha samma namn på
CVSROOT och kan ha flera CVS-moduler. Det går bra att ha samma namn på
en modul och projektet som modulen tillhör.
en modul och projektet som modulen tillhör.

<P>
Peka din webläsare på <a
Peka din webläsare på https://admin.lysator.liu.se/
href="https://admin.lysator.liu.se">https://admin.lysator.liu.se/</a>
och logga in med ditt vanliga Lysatorlogin och -lösen. Du kommer nu
och logga in med ditt vanliga Lysatorlogin och -lösen. Du kommer nu
till en huvudsida där du kan se vilka projekt du är medlem i och/eller
till en huvudsida där du kan se vilka projekt du är medlem i och/eller
administratör för.
administratör för.

<P>
För att skapa ett nytt projekt använder du menyalternativet "New
För att skapa ett nytt projekt använder du menyalternativet "New
Project" i menyn till vänster. Skriv vad du vill att ditt projekt ska
Project" i menyn till vänster. Skriv vad du vill att ditt projekt ska
heta, och tryck på knappen märkt "Create!". Ditt projekt är nu skapat.
heta, och tryck på knappen märkt "Create!". Ditt projekt är nu skapat.
<P>
<B>OBSERVERA att det tar en stund, i nuläget maximalt en kvart, innan
ditt projekt går att använda</B>


'''OBSERVERA att det tar en stund, i nuläget maximalt en kvart, innan
<H4>Att börja använda det nyligen skapade projektet</H4>
ditt projekt går att använda'''

====Att börja använda det nyligen skapade projektet====


Enklast är att använda <code>cvs import</code>. Säg att du nyss har
Enklast är att använda <code>cvs import</code>. Säg att du nyss har
skapat projektet <i>foo</i> i lysCVS. Vidare har du ett gäng filer som
skapat projektet ''foo'' i lysCVS. Vidare har du ett gäng filer som
ska finnas i foo, de existerar i katalogen <i>/home/xyzzy/bar</i>. Du
ska finnas i foo, de existerar i katalogen ''/home/xyzzy/bar''. Du
vill att filerna ska hamna i katalogen <i>gazonk</i> under cvsrooten
vill att filerna ska hamna i katalogen ''gazonk'' under cvsrooten
för <i>foo</i> I så fall gör du ungefär såhär:
för ''foo'' I så fall gör du ungefär såhär:
<pre>
<pre>
$ cd /home/xyzzy/bar
$ cd /home/xyzzy/bar
Rad 57: Rad 53:
</pre>
</pre>


De två sista argumenten är egentligen <i>vendor</i> och <i>tag</i>, så
De två sista argumenten är egentligen ''vendor'' och ''tag'', så
du kan hitta på nått bättre än ditt användarnamn och "start" om du så
du kan hitta på nått bättre än ditt användarnamn och "start" om du så
önskar.
önskar.

<P>
Nu kan du, från en annan katalog, checka ut dina filer med <pre>
Nu kan du, från en annan katalog, checka ut dina filer med <pre>
cvs -d &lt;username&gt;@cvs.lysator.liu.se:/cvsroot/foo co gazonk
cvs -d &lt;username&gt;@cvs.lysator.liu.se:/cvsroot/foo co gazonk
</pre>
</pre>
<H3>Att lägga till nya användare i ett projekt</H3>
===Att lägga till nya användare i ett projekt===


För att möjliggöra <B>skrivaccess</B> för andra än dig själv lägger du
För att möjliggöra '''skrivaccess''' för andra än dig själv lägger du
till användare till dina projekt.
till användare till dina projekt.

<P>
Gå till huvudsidan och klicka på länken märkt "administrate" för det
Gå till huvudsidan och klicka på länken märkt "administrate" för det
projekt du vill lägga till en användare till. Skriv mailadressen för
projekt du vill lägga till en användare till. Skriv mailadressen för
användaren i rutan, och tryck "Add".
användaren i rutan, och tryck "Add".

<P>
Om det är en Lysatoranvändare du lägger till är det inget mer du
Om det är en Lysatoranvändare du lägger till är det inget mer du
behöver göra, för då finns redan alla uppgifter i NIS. Om det är en
behöver göra, för då finns redan alla uppgifter i NIS. Om det är en
extern (icke-Lysit) du vill lägga till får du fylla i riktigt namn och
extern (icke-Lysit) du vill lägga till får du fylla i riktigt namn och
användarnamn på personen ifråga. <B>OBSERVERA att användarnamnet måste
användarnamn på personen ifråga. '''OBSERVERA att användarnamnet måste
börja på <i>_cvs_</i>. Detta för att skydda Lysators
börja på ''_cvs_''. Detta för att skydda Lysators
namnrymd</B>. Den externa personen får ett mail med instruktioner om
namnrymd'''. Den externa personen får ett mail med instruktioner om
inloggningsnamn och lösenord - ett automatgenererat lösenord som är
inloggningsnamn och lösenord - ett automatgenererat lösenord som är
fult som stryk.
fult som stryk.

<P>
<B>Även här tar det en kvart innan användaren kan använda cvs över
'''Även här tar det en kvart innan användaren kan använda cvs över
ssh.</B> Däremot kan hen logga in i cvsadministrationssystemet, exempelvis
ssh.''' Däremot kan hen logga in i cvsadministrationssystemet, exempelvis
för att byta lösenord eller lägga till SSH-nycklar.
för att byta lösenord eller lägga till SSH-nycklar.


<H3>Att ta bort användare i ett projekt</H3>
===Att ta bort användare i ett projekt===
Gå in på administrationssidan för ett projekt och tryck på
Gå in på administrationssidan för ett projekt och tryck på
"Remove"-knappen för den användare du inte vill ha kvar i ditt
"Remove"-knappen för den användare du inte vill ha kvar i ditt
Rad 92: Rad 88:
repositoryt. Däremot finns användaren kvar i systemet, så du kan
repositoryt. Däremot finns användaren kvar i systemet, så du kan
enkelt lägga till henom igen.
enkelt lägga till henom igen.
<P>
<B>OBSERVERA att det går utmärkt att ta bort sig själv, och då blir
det svårt..</B>


'''OBSERVERA att det går utmärkt att ta bort sig själv, och då blir
<H3>Att bestämma vem som får administrera ett projekt</H3>
det svårt...'''

===Att bestämma vem som får administrera ett projekt===
Du kan låta andra (även externa användare) bestämma vem som får lägga
Du kan låta andra (även externa användare) bestämma vem som får lägga
till/ta bort användare och huruvida projektet finns tillgängligt
till/ta bort användare och huruvida projektet finns tillgängligt
Rad 102: Rad 98:
administration rights" för personen.
administration rights" för personen.


<H3>Att tillåta/otillåta anonym access till projektet</H3>
===Att tillåta/otillåta anonym access till projektet===
På administrationssidan för projektet finns en toggle-knapp för att
På administrationssidan för projektet finns en toggle-knapp för att
bestämma om det ska gå att komma åt projektet med pserver anonymt. Om
bestämma om det ska gå att komma åt projektet med pserver anonymt. Om
så är fallet visas den CVSROOT som ska användas i så fall.
så är fallet visas den CVSROOT som ska användas i så fall.

<P>
Med pserver måste man logga in först - det gör man med ett tomt
Med pserver måste man logga in först - det gör man med ett tomt
lösenord (enter vid lösenordsfrågan, liksom).
lösenord (enter vid lösenordsfrågan, liksom).

<P>
<B>OBSERVERA att det tar en kvart innan projektet är åtkomligt
'''OBSERVERA att det tar en kvart innan projektet är åtkomligt
anonymt</B>. Däremot blir projektet oåtkomligt så fort du togglar
anonymt'''. Däremot blir projektet oåtkomligt så fort du togglar
tillbaka. Fråga inte.
tillbaka. Fråga inte.


<H3>Att tillåta/otillåta webaccess till projektet</H3>
===Att tillåta/otillåta webaccess till projektet===
Liksom du kan bestämma om projektet ska vara anonymt åtkombart med
Liksom du kan bestämma om projektet ska vara anonymt åtkombart med
pserver så kan du bestämma om projektet ska vara åtkombart med
pserver så kan du bestämma om projektet ska vara åtkombart med
Rad 120: Rad 116:
"ViewCVS access". Ändringen får omedelbar effekt.
"ViewCVS access". Ändringen får omedelbar effekt.


<H3>Att lägga till SSH-nycklar</H3>
===Att lägga till SSH-nycklar===


Det är rätt tradigt att behöva skriva in sitt lösenord var gång man
Det är rätt tradigt att behöva skriva in sitt lösenord var gång man
ska utföra ett cvs-kommando. Därför användar man med fördel
ska utföra ett cvs-kommando. Därför användar man med fördel
ssh-nycklar, gärna i kombination med ssh-agent. För att se hur man gör
ssh-nycklar, gärna i kombination med ssh-agent. För att se hur man gör
detta på Lysator läs <a href="/local/datorhandbok/ssh.html">här</a>.
detta på Lysator läs [[SSH]].

<P>
Eftersom du varken som vanlig användare eller extern dito kommer åt
Eftersom du varken som vanlig användare eller extern dito kommer åt
CVS-burken med ett vanligt skal läggs sådana nycklar till genom att
CVS-burken med ett vanligt skal läggs sådana nycklar till genom att
välja "Edit SSH keys" och klistra in de nycklar du vill ha. Servern
välja "Edit SSH keys" och klistra in de nycklar du vill ha. Servern
stödjer enbart ssh v2.
stödjer enbart ssh v2.

<P>
Anledningen till att även Lysatoranvändare måste lägga till sina
Anledningen till att även Lysatoranvändare måste lägga till sina
nycklar på detta sätt är att CVS-servern av säkerhetsskäl ej monterar
nycklar på detta sätt är att CVS-servern av säkerhetsskäl ej monterar
Lysators vanliga NFS-namnrymd.
Lysators vanliga NFS-namnrymd.

<P>
<B>Även här tar det en kvart innan du kan logga in med din nyckel</B>.
'''Även här tar det en kvart innan du kan logga in med din nyckel'''.

<P>
Ett annat sätt att slippa skriva lösenord varje gång är att använda <a
Ett annat sätt att slippa skriva lösenord varje gång är att använda [[http://www.lysator.liu.se/~nisse|Niels Möllers]]
href="http://www.lysator.liu.se/~nisse">Niels Möllers</a> <a
[http://www.lysator.liu.se/~nisse/lsh lsh} i
href="http://www.lysator.liu.se/~nisse/lsh">lsh</A> i
"Gateway-mode". Dvs, på din dator exekverar du
"Gateway-mode". Dvs, på din dator exekverar du
<pre>
<pre>
Rad 148: Rad 143:
till "lshg". Klart!
till "lshg". Klart!


<H3>Logga ut</H3>
===Logga ut===


Hur svårt kan det vara? :-)
Hur svårt kan det vara? :-)

<P>
Du blir automatiskt utloggad om du inte gör någonting på en kvart.
Du blir automatiskt utloggad om du inte gör någonting på en kvart.


<H3>Att överföra gamla repositories</H3>
===Att överföra gamla repositories===


Jodå, det går. Fast inte utan interaktion av en root. Skapa först projektet i lysCVS. Packa sedan ihop ditt repository i en tarboll och tala om var den finns för rötterna så ska vi nog kunna ordna den saken.
Jodå, det går. Fast inte utan interaktion av en root. Skapa först projektet i lysCVS. Packa sedan ihop ditt repository i en tarboll och tala om var den finns för rötterna så ska vi nog kunna ordna den saken.


<H3>Framtida planer</H3>
===Framtida planer===


Umm.. Inga direkta just nu. Kom gärna med förslag!
Umm.. Inga direkta just nu. Kom gärna med förslag!


<H3>Information om systemet</H3>
===Information om systemet===
LysCVS består av en kombination av vanligt förekommande fri
LysCVS består av en kombination av vanligt förekommande fri programvara samt ett gäng lokalt utvecklade hack. Bland annat används:

programvara samt ett gäng lokalt utvecklade hack. Bland annat används:
*[http://httpd.apache.org Apache]
*[http://www.mysql.com MySQL]
*[http://www.modpython.org mod_python]
*[http://www.cvshome.org CVS]
*[http://sourceforge.net/projects/nss-mysql nss_mysql]
*[http://viewcvs.sourceforge.net/ ViewCVS]
*[http://www.postfix.org/ Postfix]
*[http://www.mozilla.org/projects/bugzilla/ Bugzilla]

Den lokalt utvecklade programvaran är mestadels utvecklad av [http://www.lysator.liu.se/~forsberg/ Erik Forsberg] och finns att hämta [http://www.lysator.liu.se/~forsberg/hacks/lyscvs här].


<ul>
<li><a href="http://httpd.apache.org">Apache</A>
<li><a href="http://www.mysql.com">MySQL</A>
<li><a href="http://www.modpython.org">mod_python</A>
<li><a href="http://www.cvshome.org">CVS</A>
<li><a href="http://sourceforge.net/projects/nss-mysql">nss_mysql</A>
<li><a href="http://viewcvs.sourceforge.net/">ViewCVS</a>
<li><a href="http://www.postfix.org/">Postfix</a>
<li><a href="http://www.mozilla.org/projects/bugzilla/">Bugzilla</A>


</ul>
Den lokalt utvecklade programvaran är mestadels utvecklad av <A HREF="http://www.lysator.liu.se/~forsberg/">Erik Forsberg</A> och
finns att hämta <a href="http://www.lysator.liu.se/~forsberg/hacks/lyscvs">här</a>
<P>
Hård och operativsystemsmässigt är burken ifråga för tillfället en
Hård och operativsystemsmässigt är burken ifråga för tillfället en
Dell PowerEdge 6100/200 (stalingrad) med 2 st 200 MHz Pentium Pro och 256 MiB
Dell PowerEdge 6100/200 (stalingrad) med 2 st 200 MHz Pentium Pro och 256 MiB
minne. Inte världens snabbaste maskin, men den är stabil, den har bra
minne. Inte världens snabbaste maskin, men den är stabil, den har bra
diskutbyggnadsmöjligheter och den har en tvillingsyster att plocka
diskutbyggnadsmöjligheter och den har en tvillingsyster att plocka
reservdelar från. Maskinen kör <a href="http://www.debian.org">Debian
reservdelar från. Maskinen kör [http://www.debian.org/ Debian GNU/Linux].

GNU/Linux</a>.
<p>
Maskinen speglar sina diskar med Linux mjukvaru-RAID, och backup tas
Maskinen speglar sina diskar med Linux mjukvaru-RAID, och backup tas
en gång per dygn via Lysators vanliga backuprutiner.
en gång per dygn via Lysators vanliga backuprutiner.

Versionen från 9 oktober 2006 kl. 22.42

CVS är ett väldigt användbart verktyg. På denna sida beskrivs hur du använder det på Lysator.

Det gamla sättet, /lysator/cvsroot

Sedan länge finns en cvsroot som alla Lysiter på ett någorlunda enkelt sätt kan skapa ett repository i. Problemet med den lösningen är att endast Lysiter kan komma åt den, och anonym access är inte möjlig.

Hur man i detalj använder /lysator/cvsroot beskrivs inte på denna oebbsida.

Det nya sättet, lysCVS

Eftersom det verkade finnas ett behov av cvs-repository där man dels kan ha med icke-Lysiter som utvecklare, och dels tillåta anonym access, utvecklades sommaren 2001 en lösning som tillåter detta.

Lösningen finns att beskåda bland annat i form av http://cvs.lysator.liu.se/. Lösningen går under namnet LysCVS.

LysCVS har ett oebbaserat administrationsinterface där du själv som vanlig användare kan skapa projekt, lägga till användare till detta och så vidare. Nedan beskrivs hur du gör.

Att skapa nya projekt i LysCVS

LysCVS bygger på konceptet projekt. Varje projekt har en egen CVSROOT och kan ha flera CVS-moduler. Det går bra att ha samma namn på en modul och projektet som modulen tillhör.

Peka din webläsare på https://admin.lysator.liu.se/ och logga in med ditt vanliga Lysatorlogin och -lösen. Du kommer nu till en huvudsida där du kan se vilka projekt du är medlem i och/eller administratör för.

För att skapa ett nytt projekt använder du menyalternativet "New Project" i menyn till vänster. Skriv vad du vill att ditt projekt ska heta, och tryck på knappen märkt "Create!". Ditt projekt är nu skapat.

OBSERVERA att det tar en stund, i nuläget maximalt en kvart, innan ditt projekt går att använda

Att börja använda det nyligen skapade projektet

Enklast är att använda cvs import. Säg att du nyss har skapat projektet foo i lysCVS. Vidare har du ett gäng filer som ska finnas i foo, de existerar i katalogen /home/xyzzy/bar. Du vill att filerna ska hamna i katalogen gazonk under cvsrooten för foo I så fall gör du ungefär såhär:

$ cd /home/xyzzy/bar
$ export CVS_RSH=ssh
$ cvs -d <username>@cvs.lysator.liu.se:/cvsroot/foo import gazonk <username&gt start;

De två sista argumenten är egentligen vendor och tag, så du kan hitta på nått bättre än ditt användarnamn och "start" om du så önskar.

Nu kan du, från en annan katalog, checka ut dina filer med

cvs -d <username>@cvs.lysator.liu.se:/cvsroot/foo co gazonk

Att lägga till nya användare i ett projekt

För att möjliggöra skrivaccess för andra än dig själv lägger du till användare till dina projekt.

Gå till huvudsidan och klicka på länken märkt "administrate" för det projekt du vill lägga till en användare till. Skriv mailadressen för användaren i rutan, och tryck "Add".

Om det är en Lysatoranvändare du lägger till är det inget mer du behöver göra, för då finns redan alla uppgifter i NIS. Om det är en extern (icke-Lysit) du vill lägga till får du fylla i riktigt namn och användarnamn på personen ifråga. OBSERVERA att användarnamnet måste börja på _cvs_. Detta för att skydda Lysators namnrymd. Den externa personen får ett mail med instruktioner om inloggningsnamn och lösenord - ett automatgenererat lösenord som är fult som stryk.

Även här tar det en kvart innan användaren kan använda cvs över ssh. Däremot kan hen logga in i cvsadministrationssystemet, exempelvis för att byta lösenord eller lägga till SSH-nycklar.

Att ta bort användare i ett projekt

Gå in på administrationssidan för ett projekt och tryck på "Remove"-knappen för den användare du inte vill ha kvar i ditt projekt. Användaren kan nu inte längre skriva eller läsa repositoryt. Däremot finns användaren kvar i systemet, så du kan enkelt lägga till henom igen.

OBSERVERA att det går utmärkt att ta bort sig själv, och då blir det svårt...

Att bestämma vem som får administrera ett projekt

Du kan låta andra (även externa användare) bestämma vem som får lägga till/ta bort användare och huruvida projektet finns tillgängligt anonymt. Gå in på administrationssidan för projektet och tryck på "toggle administration rights" för personen.

Att tillåta/otillåta anonym access till projektet

På administrationssidan för projektet finns en toggle-knapp för att bestämma om det ska gå att komma åt projektet med pserver anonymt. Om så är fallet visas den CVSROOT som ska användas i så fall.

Med pserver måste man logga in först - det gör man med ett tomt lösenord (enter vid lösenordsfrågan, liksom).

OBSERVERA att det tar en kvart innan projektet är åtkomligt anonymt. Däremot blir projektet oåtkomligt så fort du togglar tillbaka. Fråga inte.

Att tillåta/otillåta webaccess till projektet

Liksom du kan bestämma om projektet ska vara anonymt åtkombart med pserver så kan du bestämma om projektet ska vara åtkombart med ViewCVS, en web-cvs-frontända. Det gör du genom att toggla knappen för "ViewCVS access". Ändringen får omedelbar effekt.

Att lägga till SSH-nycklar

Det är rätt tradigt att behöva skriva in sitt lösenord var gång man ska utföra ett cvs-kommando. Därför användar man med fördel ssh-nycklar, gärna i kombination med ssh-agent. För att se hur man gör detta på Lysator läs SSH.

Eftersom du varken som vanlig användare eller extern dito kommer åt CVS-burken med ett vanligt skal läggs sådana nycklar till genom att välja "Edit SSH keys" och klistra in de nycklar du vill ha. Servern stödjer enbart ssh v2.

Anledningen till att även Lysatoranvändare måste lägga till sina nycklar på detta sätt är att CVS-servern av säkerhetsskäl ej monterar Lysators vanliga NFS-namnrymd.

Även här tar det en kvart innan du kan logga in med din nyckel.

Ett annat sätt att slippa skriva lösenord varje gång är att använda [Möllers] [http://www.lysator.liu.se/~nisse/lsh lsh} i "Gateway-mode". Dvs, på din dator exekverar du

lsh -G -N -l <användarnamn> cvs.lysator.liu.se

och skriver in ditt lösenord. Sen sätter du miljövariabeln CVS_RSH till "lshg". Klart!

Logga ut

Hur svårt kan det vara? :-)

Du blir automatiskt utloggad om du inte gör någonting på en kvart.

Att överföra gamla repositories

Jodå, det går. Fast inte utan interaktion av en root. Skapa först projektet i lysCVS. Packa sedan ihop ditt repository i en tarboll och tala om var den finns för rötterna så ska vi nog kunna ordna den saken.

Framtida planer

Umm.. Inga direkta just nu. Kom gärna med förslag!

Information om systemet

LysCVS består av en kombination av vanligt förekommande fri programvara samt ett gäng lokalt utvecklade hack. Bland annat används:

Den lokalt utvecklade programvaran är mestadels utvecklad av Erik Forsberg och finns att hämta här.


Hård och operativsystemsmässigt är burken ifråga för tillfället en Dell PowerEdge 6100/200 (stalingrad) med 2 st 200 MHz Pentium Pro och 256 MiB minne. Inte världens snabbaste maskin, men den är stabil, den har bra diskutbyggnadsmöjligheter och den har en tvillingsyster att plocka reservdelar från. Maskinen kör Debian GNU/Linux.

Maskinen speglar sina diskar med Linux mjukvaru-RAID, och backup tas en gång per dygn via Lysators vanliga backuprutiner.