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é.