cvs doet in principe niet aan locking. Stel iemand is printf() aan het maken in stdio.c, en jij wilt scanf() aanpassen, dan ben je met locking dus de pineut. Het gevaar wat je dus wel krijgt is dat je files moet gaan mergen. Op zich niet erg, maar in geen enkel geval een goed idee. Je kunt met CVS trouwens wel expliciet files locken zodat je ze niet kunt inchecken tenzij de andere de file unlocked, maar in dat geval kun je beter een ander systeem gebruiken. MKS bijvoorbeeld is echt perfect (maar wel duur), en is niet echt cross-platform te noemen.
Hou er rekening mee dat wanneer je met CVS aan de slag gaat, dat het in eerste instantie alleen maar extra werk met zich meebrengt, en dat je geen tot weinig profijt gaat zien in het begin. Je moet namelijk eerst modules importeren, files uitchecken, updaten, inchecken etc, wat voor veel mensen, die het niet gewend zijn, nogal een administratieve rompslomp lijkt.
Mijn advies aan mensen die met CVS willen beginnen: ga eerst klooien met simpele hello-world modules. Ga ze editten, updaten, in- en uitchecken, branchen en mergen en kijk of je fatsoenlijk met tags en releases kunt werken.
Oja, stel als je met meerdere mensen gaat werken een policy op over wanneer je iets mag inchecken, welke modules er zijn en wie er in mogen werken (mag iemand die bezig is met de gui ook inchecken in de engine en andersom?). Wanneer mag je een file inchecken, als die helemaal compiled, of wanneer de hele module compiled? Hoe moet er opgegeven worden wat er gedaan is in de module (eg: "fixed some stuff" of "changed the MAX_COUNT define from 100 to 128 so we can count 28 more digits in count_digits()").
Der is dus zat waar je rekening mee moet gaan houden op het moment dat je dus met (ieder) versie-systeem gaat werken.
(owja, en vergeet alsjeblieft niet om elke source-file een $header$ of $id$ mee te geven

)
Yo dawg, I heard you like posts so I posted below your post so you can post again.