cvsinfo
-------
Het gebruik van CVS

CVS Manual   => http://www.surriel.com/cvs_manual/cvs_toc.html
CVS homepage => http://www.sourcegear.com/CVS/
Download CVS => http://download.cyclic.com/pub/

De documentatie op NL.Linux.org wordt onderhouden via het CVS
systeem. Deze pagina beschrijft het gebruik van CVS en is bedoeld
voor iedereen die meewerkt aan de documentatie sectie van
NL.Linux.org. De CVS tree voor de documentatie is nldoc/.
Voor het testen van onderstaande commando's kan de CVS tree
test/ gebruikt worden, waar iedereen mee kan doen wat hij/zij
wil.

Goede gewoontes
---------------

Er is geen reglement voor het documentatie gedeelte. Er zijn wel
een paar goede gewoontes waar iedereen zich gewoonlijk aan houdt.

     * Als je een document wilt vertalen, vraag het eerst even aan
       de auteur. Als iedereen dit doet, weet je aardig zeker dat
       er niet twee mensen tegelijk met de vertaling bezig zijn,
       het spaart dus werk. Ook is het gewoon netjes ten opzichte
       van de auteur om het eerst te vragen, ook al heb je
       volgens het HOWTO copyright het recht om een vertaling te
       maken buiten medeweten van de auteur.
     * Iedereen stelt het op prijs als zijn/haar vertaling
       gecontroleerd wordt op fouten. Ook hier geldt: overleg dit
       even met de vertaler of auteur. Dit is prettiger voor de
       auteur of vertaler en scheelt werk als iemand anders ook
       al de fouten nakijkt.
     * Als je een nieuwe HOWTO gaat vertalen, kijk dan eerst even
       op de lijst met HOWTO's waar iemand al mee bezig is. Als
       nog niemand er mee bezig is, zet de HOWTO op de lijst. Op
       deze manier wordt voorkomen dat er werk dubbel gedaan
       wordt.


Ophalen van de CVS tree
-----------------------

Voordat je kan beginnen met het bijwerken van de HOWTO's, zal je
eerst alle HOWTO's naar je toe moeten halen. Dit is een eenmalige
actie, en kost zo'n 60 MB data verkeer. Hieronder volgen de CVS
instructies. "username" moet je natuurlijk vervangen door je
eigen username.

-------------------------------------------------------------
export CVS_RSH=ssh
export CVSROOT=:ext:username@nl.linux.org:/home/CVS
cvs checkout nldoc/ <i>(en drink een kop koffie)</i>
-------------------------------------------------------------

Voorheen waren dit de opdrachten:
_____________________________________________________________
   export CVSROOT=:pserver:username@nl.linux.org:/home/CVS
   cvs login <i>(en tik je wachtwoord)</i>
   cvs checkout nldoc/ <i>(en drink een kop koffie)</i>
______________________________________________________________
Als je een dergelijke CVS-tree nog op je schijf hebt staan, en niet
de volledige download opnieuw wilt doen, kun je de volgende opdracht
gebruiken om de CVS/Root bestanden aan te passen:

cd nldoc
perl -pi -e 's/:pserver:/:ext:/' `find . -name Root`

In alle CVS/Root bestanden wordt in dat geval de regel:
:pserver:username@nl.linux.org:/home/CVS
gewijzigd in:
:ext:username@nl.linux.org:/home/CVS


Bewerken van bestanden in de CVS tree
-------------------------------------

CVS zorgt ervoor dat meerdere mensen aan een project kunnen
werken. Voordat je een bestand verandert, moet je de laatste
versie ophalen. Iemand anders kan het bestand immers veranderd
hebben sinds de laatste keer dat je een nieuwe versie ophaalde.

________________________________
   cd nldoc/
   cvs update filename.sgml
________________________________

Of, om alle bestanden te vernieuwen in de huidige directory en
subdirectories:

_________________
  cvs update -d
_________________

Nu heb je de meeste recente versie van het bestand. Bewerk nu het
bestand met vi, Emacs, Nedit, of wat voor editor dan ook. Of zet
gewoon een nieuwe, reeds geschreven, versie eroverheen. Het
bijgewerkte bestand wordt op de volgende manier teruggezet in de
CVS tree:

__________________________________________________________
  cvs commit -m "zet hier een logmessage" filename.sgml
__________________________________________________________

Nadat de sgml file in de CVS tree gezet wordt, gebeuren er op de
server allerlei dingen mee. De sgml file wordt omgezet naar
postscript, text, en html formaat. Van die bestanden worden dan
weer zip en tar.gz bestanden gemaakt en in de ftp directory
geplaatst. Tijdens dit hele proces lijkt de cvs client te
"hangen". Dit is een bugje in CVS. Het is verder niet zo'n
probleem, breek CVS gewoon af met ctrl-c nadat CVS "done" als
output geeft. De processen op de server gaan dan gewoon door.

De logmessage wordt in de CVS tree gezet, en wordt gebruikt om te
kijken wie welke veranderingen heeft aangebracht, en wanneer. Het
is dus belangrijk een duidelijke maar korte logmessage te
kiezen.

Het bekijken van de log en herstellen van oude versies
------------------------------------------------------

Een groot voordeel van CVS is dat je elke verandering ongedaan
kan maken. Elke versie van elk document wordt namelijk in de CVS
tree opgeslagen. Als er iets is misgegaan met een document, kijk
dan eerst waar het is misgegaan:

__________________________________
  cvs log filename.sgml | less
__________________________________

Dit levert de datum, tijd, auteur, en beschrijving bij elke
update van het document. Daarnaast heeft elke update een
versienummer. Aan de hand van die nummer kan je een bepaalde
versie uit de CVS tree halen. Om versie 1.23 van document
filename.sgml uit de CVS tree te halen, tik:

____________________________________
  cvs update -r 1.23 filename.sgml
____________________________________

Als je deze van deze versie de huidige versie wilt maken, ga dan
als volgt te werk: Kopieer versie 1.23 tijdelijk ergens anders
heen. Tik dan: "cvs update -A". De -A optie zorgt ervoor dat nu
weer de laatste versie opgehaald wordt. Kopieer dan versie 1.23
over filename.sgml heen, en commit de wijzigingen. Het huidige
document is nu hetzelfde als wat 1.23 was.


De NL.Linux.org documentatie database
-------------------------------------

Alle Nederlandstalige documenten worden op NL.Linux.org in een
database opgeslagen. Dat zijn dus niet alleen de documenten
die op NL.Linux.org staan, maar ook documenten die elders gehost
staan.

De database wordt bijgewerkt vanuit het DATABASE bestand in de
nldoc/ CVS tree. Bij elke update van dit bestand wordt MySQL
bijgewerkt, en wordt de NL-INDEX howto opnieuw gegenereerd.

Het formaat van het DATABASE bestand staat uitgelegd in het
bestand DATABASE-README. Het belangrijkst is dat elk veld op
slechts 1 regel staat. Dus een beschrijving mag niet op meerdere
regels doorlopen.

Verder is het de gewoonte de titel van een document zodanig te
kiezen, dat het document in een alfabetisch lijst staat waar de
gebruiker verwacht dat het staat. Dus niet "De Kernel HOWTO",
maar "Kernel HOWTO".

