CVS over SSH mini HOWTO ======================= Copyright © 2003 Guillem Jover Distributed subject to the GNU General Public License, version 2. 0. Software necessari Necessitareu evidentment el ssh i el cvs. $ apt-get install cvs ssh 1. 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< --------------- 2. 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). 2.1. 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 2.2. Connexió amb l'agent de SSH 2.2.1. 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` 2.2.2. 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< ----------------------------------------- 2.3. Afegint la frase clau a l'agent Per a que l'agent recordi la frase clau durant aquesta sessió: $ ssh-add 2.4. 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 2.5. 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 } } 2.6. 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 2.7. 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é.