CONFIGURACION DEL CVS EN SERVIDOR Y CLIENTES ============================================ Documento creado por = Pablo Gutierrez Documentacion del CVS = http://www.cvshome.org/docs/manual/cvs.html#SEC_Top Fuentes del CVS 1.11.5 para QNX 4 = http://elpulpo.tripod.com/qnx 1) INSTALACION ============== Estos pasos deben ejecutarse en las maquinas clientes y en el servidor a) Copiar 'cvs-1.11.5-qnx425-bin.tar.gz' a cada una de las maquinas (cualquier directorio) b) ejecutar un 'gzip -d cvs-1.11.5-qnx425-bin.tar.gz' c) ejecutar un 'tar -xvf cvs-1.11.5-qnx425-bin.tar', el cual instala los ejecutables en /usr/local/bin d) agregar '/usr/local/bin' a la variable de entorno $PATH, por ejemplo editando el archivo /etc/profile y agregando 'export PATH=$PATH:/usr/local/bin' 2) CONFIGURACION DEL SERVER =========================== a) El servidor debe tener instalado TCP/IP y correctamente configurado b) Asegurarse de que el demonio 'inetd' este corriendo (desde el /etc/netstart o del /etc/config/sysinit.$NODE preferentemente) c) Como el CVS por red utiliza los servicios de RSH, hay que realizar configuracion para permitir la ejecucion de comandos remotos. Como en TAMSA el unico usuario en QNX es 'root' en todas las planta, hay que crear el archivo '/.rhosts' y llenarlo de la siguiente manera: + + Administrador + Administrator + root Las lineas 'Administrador' son para permitir las conexiones desde windows 2000 con clientes CVS graficos. Ver mas detalles del archivo '/.rhosts' en la ayuda de TCP/Ip de PHOTON. d) ejecutar 'cvs -d /usr/local/cvsroot init' para crear un repositorio en /usr/local/cvsroot e) crear un link simbolico de /usr/local/bin/cvs a /bin/cvs 'ln -s /usr/local/bin/cvs /bin/cvs' Esto es necesario porque 3) CONFIGURACION DE CLIENTE QNX SIN TCP ======================================= a) Agregar al final de '/etc/profile' export CVSROOT='//10/usr/local/cvsroot' suponiendo que el servidor CVS este en el nodo 10. De esta forma se evita tener que poner el parametro -d cuando se llama al programa cvs. 4) CONFIGURACION DE CLIENTE QNX CON TCP/IP ========================================== a) Agregar al final de '/etc/profile' export CVSROOT=':ext:root@10.94.2.2:/usr/local/cvsroot' suponiendo que 10.94.2.2 es la Ip del servidor CVS. De esta forma se evita tener que poner el parametro -d cuando se llama al programa cvs. Tambien se puede usar como alternativa la opcion 3)a) 5) CONFIGURACION DE CLIENTE WINDOWS CON WINCVS ============================================== a) Probar la conexion RSH con el el servidor con el siguiente comando: c:\>rsh 10.94.2.2 -l root 'sin' Reemplazando 10.94.2.2 por la direccion IP del servidor QVS QNX configurado anteriormente. Si el comando muestra un 'sin' de QNX entonces, esta todo bien. b) instalar el WinCvs y ejecutarlo c) Menu "Admin->Preferences" y poner en CVSROOT 'root@172.29.11.120:/usr/local/cvsroot' d) ya se podra hacer un checkout de un proyecto con menu "Create->Check out module" 6) USO RAPIDO DEL CVS Y CONVECIONES PARA TAMSA ============================================== Creacion de un nuevo proyecto: ============================== Crear una carpeta en el directorio /home para todos los proyectos (ejemplo /home/fesf) Crean una carpeta dentro de /home/fesf/ para cada proyecto (por ejemplo: /home/fesf/interrupciones) Crear subdirectorios dentro de /home/fesf/interrupciones src aca iran los fuentes del proyecto y los binarios que se compilen doc archivos de documentacion y ayuda $ cd /home $ mkdir fesf $ mkdir fesf/interrupciones Ejecutar: # creacion de los directorios en el repositorio $ cd /home/fesf $ cvs import -m "Estructura de directorios creada" fesf/interrupciones tamsa inicio $ cd /home $ rm -rf fesf //lo borramos a mano para poder hacer un checkout Con estos pasos ya tenemos un proyecto creado (aunque vacio) en el servidor cvs. Trabajar sobre un proyecto ya creado ==================================== Para poder trabajar con el proyecto recien creado hacemos un checkout el cual nos genera una copia local del proyecto almacenado en el repositorio $ cvs checkout fesf/interrupciones $ cd fesf/interrupciones $ mkdir src $ mkdir doc $ cvs add src (agrega el directorio src en el servidor) $ cvs add doc (agrega el directorio doc en el servidor) $ cvs commit Crear los archivos *.c *.h y todos los necesarios del proyecto en la carpeta local (/home/fesf/interrupciones/src) y luego ir haciendo un $ cvs add nombre_del_archivo para agregar los archivos locales al servidor cvs (repositorio). Cuando ya se desea terminar, se hace un $ cd /home $ cvs release -d fesf (borra todos los archivos locales y el directorio fesf) Modificar archivos ya creados ============================= Al dia siguiente se quiere seguir trabajando sobre el proyecto, hay que ir al directorio home y traerlo del repositorio: $ cd /home $ cvs checkout fesf/interrupciones (se trar los subdirectorios y los archivos fuentes de servidor cvs) $ cd fesf/interrupciones/src (editar un archivo *.c) para subir la modificacion al servidor cvs se hace: $ cvs commit -m "Se cambia la rutina imprimir()" ints.c Por cada archivo fuente que se modifique es necesario subir los cambios al servidor y JUSTIFICAR el cambio Reglas a crear en el makefile ============================= Crear en /home/fesf/interrupciones un 'makefile' que llame al makefile que debe haber dentro de 'src' all: compila y genera los binarios de todo install: Copia todos los binarios generados a los siguientes directorios: /usr/local/bin si son ejecutables /usr/local/lib si son librerias /usr/local/include si son header necesarios para utilizar la libreria En ningun caso se deben utilizar los binarios que quedan en /bin ya que el directorio completo puede ser borrado al hacer un commit del proyecto cvs. clean: borrar los *.o generados