Article View: es.comp.os.linux.programacion
Article #8166Re: CVS Returns: scripts parar detectar cambios
From: "Jesús M. NAVARRO"
Date: Mon, 23 Dec 2002 14:24
Date: Mon, 23 Dec 2002 14:24
84 lines
4723 bytes
4723 bytes
Hola, Count: Count Zero wrote: > Bueno, gracias a vosotros y un semanita practicando me empiezo a mover > agilmente en el mundo del CVS. Gracias a todos. > > Ahora me he hecho un script para 'semi' automatizar la 'instalaci�n' de > nuevas versiones. Es decir: coger algo del repositorio y poner lo donde > tocar�a, como por ejemplo el repositorio de la p�gina web en el directorio > del servidor apache. > > Lo que ara quiero hacer es hacer un script para que me avise via mail > cuando haya un nuevo "commit" o un nuevo "tag|rtag". > > Mirando la documentaci�n ya he visto que debe hacer uso del loginfo, > taginfo y tal, pero hay un peque�o problema. > > Si yo meto un script en taginfo y se hace un 'cvs tag' se ejecuta ese > script para cada archivo que hay en el repositorio al que se le hace tag, y > yo quiero que se ejecute s�lo por cada repositorio afectado (es decir una > s�la vez). > El procedimiento est�ndar estriba en el correcto uso de las expresiones regulares y un cierto manejo "ad hoc" de CVS. Como ya has averiguado, dada la naturaleza de CVS, su "unidad de trabajo" es el fichero, y todas sus operaciones son "file oriented". Yo ten�a hechos una serie de scripts para manejar las situaciones en las que te hayas ahora pero, desgraciadamente, se han perdido "en la noche de los tiempos". No obstante, todos se basaban en los mismos principios: 1/ Tags con "contenido sem�ntico": antes o despu�s te encontrar�s con que cierta operaci�n, basada en tags tendr�a que tener excepciones, y no te gustar� tener que ir activando/desactivando tus scripts. Utiliza las expresiones regulares *tambi�n* contra los tags (as�, deber� estar documentado que -por ejemplo, lo detalles concretos dependen de tu implementaci�n-, los tags en la forma 'v_lo_que_sea', corresponder�n a versiones que tienen que ir a producci�n, mientras que 'mn_lo_que_sea', son versiones internas de mantenimiento, y que cualquier otro tag ser� ignorado por los scripts). 2/ Operar *siempre* contra m�dulos completos: as�, si existe el m�dulo "sitio_web_1", todas las operaciones globales las llevar�s a cabo en este nivel y no en niveles interiores (`cvs tag sitio_web_1`, no `cvs tag sitio_web_1/fichero.txt`). Esto permite, adem�s, el uso de un "fichero sabio" que te permitir� convertir operaciones "file oriented" en operaciones "module oriented" simplemente con realizarlas cuando el "fichero sabio" se vea afectado. As�, veamos el caso pr�ctico de uso de taginfo: El cuarto par�metro que se pasa al script es un "array" que contiene el nombre del fichero afectado y la revisi�n: si utilizas un "fichero sabio", te basta con que el script s�lo haga lo que tenga que hacer cuando el nombre del fichero coincida con el del "fichero sabio", teniendo en cuenta que la operaci�n "tag" (trata de evitar rtag en la medida de lo posible, salvo cuando puedas asociarla a otro tag ya establecido) s�lo la ejecutar�s contra un m�dulo completo. El esqueleto del script que t� invocar�s podr�a ser algo as�: #!/bin/bash readonly SMARTFILE="log.txt" case "$4" in SMARTFILE) # Hago lo que tenga que hacer ;; *) # Esto no me interesa procesarlo ;; esac exit 0 (ojo: en tus primeras pruebas, lim�tate a enviar a la salida est�ndar los par�metros de entrada, porque te estoy hablando de memoria y quiz� el formato de los par�metros de entrada no sea exactamente el que te digo). -- SALUD, Jes�s *** jesus_navarro@undominio.net ***
Technical Details
Message-ID:
<tuijd-db2.ln1@mithrandir.intranet>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!logbridge.uoregon.edu!fu-berlin.de!uni-berlin.de!212.97.187.85!not-for-mailReferences:
<au4v15$4bdng$1@ID-131244.news.dfncis.de>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,2cc1b90df619f39 X-Google-Attributes: gidf86c8,public X-Google-ArrivalTime: 2002-12-23 07:12:26 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!logbridge.uoregon.edu!fu-berlin.de!uni-berlin.de!212.97.187.85!not-for-mail From: "Jesús M. NAVARRO" <jesus_navarro@undominio.net> Newsgroups: es.comp.os.linux.programacion Subject: Re: CVS Returns: scripts parar detectar cambios Date: Mon, 23 Dec 2002 15:24:59 +0100 Lines: 85 Message-ID: <tuijd-db2.ln1@mithrandir.intranet> References: <au4v15$4bdng$1@ID-131244.news.dfncis.de> NNTP-Posting-Host: 212.97.187.85 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit X-Trace: fu-berlin.de 1040656344 5159871 212.97.187.85 (16 [173178]) X-Orig-Path: mithrandir.intranet!news User-Agent: Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.2.1) Gecko/20021210 Debian/1.2.1-3 X-Accept-Language: es-es, es In-Reply-To: <au4v15$4bdng$1@ID-131244.news.dfncis.de>