Software necessari
Necessitareu evidentment el ssh i el cvs.
$ apt-get install cvs ssh
Configurar el client cvs
Copieu el següent text al fitxer ~/.cvsrc, són les opcions predeterminades de les subordres del cvs.
--- cut here X< ---------------
cvs -z3
diff -u
update -P -d
checkout -P
--- cut here X< ---------------
Configuració de connexions amb una sola introducció de contrasenya
El mètode més comú emprat, és introduir la contrasenya del sistema remot cada cop que es fa una transacció de cvs. Però el que ens interessa és introduir la contrasenya un sol cop, per això farem servir claus asimètriques (independents de la contrasenya del sistema remot), i un agent perquè recordi la contrasenya i només la pregunti un sol cop (l'agent només funciona amb claus asimètriques).
Creant les claus asimètriques
$ ssh-keygen -t rsa
## aquí demanarà el passwd del server (!!la passphrase NO!!)
$ ssh $USER@cvs.hadrons.org mkdir ~/.ssh
$ scp ~/.ssh/id_rsa.pub $USER@cvs.hadrons.org:~/.ssh/athorized_keys
Connexió amb l'agent de SSH
Carregant l'agent manualment
Cada cop que vulgueu fer servir el ssh sense contrasenyes (només la preguntarà un cop, els següents no):
$ eval `ssh-agent`
Automatitzant l'execució de l'agent
Per poder fer servir el mateix ssh-agent en totes les consoles de text (si nomes feu servir X en Debian, no us caldrà ja que les X arranquen el ssh-agent abans de començar):
Heu d'afegir al ~/.bashrc, dins l'if que comprova si funciona en mode interactiu (if $PS1):
--- cut here X< -----------------------------------------
# start ssh-agent for all sessions
SSH_AGENT_DIR=~/.ssh/ssh-agent
if [ -d $SSH_AGENT_DIR ]; then
source $SSH_AGENT_DIR/environment
else
eval `ssh-agent | tee ~/.ssh/environment`
ln -sf `dirname $SSH_AUTH_SOCK` $SSH_AGENT_DIR
mv ~/.ssh/environment $SSH_AGENT_DIR/environment
fi
--- cut here X< -----------------------------------------
Afegint la frase clau a l'agent
Per a que l'agent recordi la frase clau durant aquesta sessió:
$ ssh-add
Descarregant el repositori
Pot ser que us faci falta fer:
$ export CVS_RSH=ssh
(En una Debian amb SSH instal·lat i el RSH desinstal·lat no fa falta).
Això és només pel primer cop, per fer un checkout (co) del projecte:
$ cvs -d :ext:$USER@cvs.hadrons.org:/cvsroot/$REPOS checkout $MODULE
$ cd $MODULE
Desenvolupament emprant el CVS
Això és un bucle while (1) {
## editeu el fitxer en local ...
$ vi $fitxer-random
## Apugeu el fitxer amb un commit (ci).
$ cvs commit $fitxer-random
if conflicte {
## Actualitzeu el repositori local
$ cvs update
## Resoleu qualsevol conflicte
$ vi $fitxer-amb-conflicte
## i envieu els canvis ...
$ cvs commit $fitxer-amb-conflicte
}
}
Fent que l'agent oblidi la frase clau
Si voleu que l'agent oblidi la frase clau durant la sessió actual, podeu fer:
$ ssh-add -d
Resum d'ordres més comunes
Totes les ordres de cvs tenen alies, aquí les mes importants:
commit = ci
checkout = co
update = up
add
remove = rm
…
La major part de les ordres de cvs són recursives i per tant un cop dins d'un dir sota el control de cvs podríeu fer p. ex. «cvs ci» i faria un commit de tots el fitxers modificats en el dir actual i tots els subdirs.
Us recomano que us llegiu la documentació de CVS, esta molt bé.