Usually any free/open source project involve developers working independently and communicating via internet.
Suppose you and I are developing a editor.
We have a skeleton of the editor code in place at some_machine\me_u_editor
now I download the code and add search functionality
You download the code and add cut paste functionality.
Inorder the synchronise our works, we go for CVS.
Like, from the intial reposority. I would checkout ( take the code) for adding search function and checkin( give back) to the intial repository.
Now you would checkout( take) the code ( with search feature added) and then add cut paste feature and checking to the repository again.
Thus the development process would continue.