CVS
From ClaroDevel
La Bascule CVS Avril 2004 s'est bien passée.
CVS Switch (fr) seems good happened.
| Table of contents |
|
|
What is CVS ?
CVS Stands fo Concurent Version System. CVS is the central place where each developper place his source code when he considers it stable. CVS is able manage to the case of 2 from 2 different places developpers working on the same script. There is tons of tutos about cvs on the web.
CVS Clients
- MacOs X
- [[5] (http://www.wincvs.org/|MacCvsX)]
CVS Claroline settings for anonymous user
server: cvs.claroline.net repository: /cvs/claroline module: claroline anonymous user: cvsanon password: claroline
Common commands
the first...
Checkout
ie my last checkout
cd H:\sources\cvs.claroline.net\ cvs -z3 -q checkout -P -d c150.upgrade claroline
cd H:\sources\cvs.claroline.net\
to go in repository where are all my checkouts
cvs -z3 -q checkout -P -d c150.upgrade claroline
to keep a local repository
-z3
it's just a compression factor. it from my home computer, I'm not in local, so I ask to server to compress a little to preserve my bandwith.
-q
Quiet mode. It's to have a less verbose output on checkout (that's work on update)
checkout
this is the command.
-P
Prune checkout CVS can't really delete something. "has been" is not same that "never been". It's a very good think but ... mark as delete work only on a file, not on a directory. So if a directory is added in the repository structure, thay can never deleted
in claroline we had decide to rename /include to /inc and /images to /img
It is a good decision but now /include and /image still in cvs. files in theses directory are marks as deleted.
If all files of a directory are marks as deleted (or morstrange, if the directory don't contain files) the -P params force checkout to don't create the directory.
-d c150.upgrade
This is the name of local directory where the module is checkout.
default is module name if I remove -d c150.upgrade
cvs checkout claroline
is like
cvs checkout -d claroline claroline
and a claroline sub dir of H:\sources\cvs.claroline.net\ is created and target as local repository
with -d c150.upgrade a c150.upgrade sub dir of H:\sources\cvs.claroline.net\ is created and target as local repository
Why do that ?
Claroline is a big project. Each change is a little project in the big.
If I work in many task, these task can be separated but work on same files (libs, config, ...)
If all change are made in same local repository, all task would be ready to commit to commit one of them.
With local separation I can make a checkout by task, and commit separatly without influence.
If a file is changed by two task, the first witch is ready, is commited.
An update on second task, add the new functionnalities of task one in repository of task 2 without loose change for the task 2.
Later if task two is ready , the commit add functionnalyties of task two without loose task 1.
It's like a local branch.
claroline
the is the module name. A cvs can contain many module. We don't. So it's always claroline. to remeber, the module was previously called Claroline010
commit
update
diff
Lectures
branch
export CVSROOT=":pserver:login@cvs.claroline.net:/cvs/claroline" cvs login cvs checkout -r V_1_5_1_WORK claroline
in french
- Un article sur Arch avec une discussion instructive derrière (http://linuxfr.org/2003/07/09/13201.html)
cvs thru ssh
1° ssh
ssh-keygen -t dsa
-> donner un password
2 ficher son crées id_dsa a conserver bien secrètement id_dsa.pub a chanter sur tous les toits
