2009-06-30 8 views
14

En general, nuestras correcciones/parches para cualquier error implican cambios en varios archivos y confirmaremos todos estos archivos en una sola toma.Lista de todos los archivos registrados en una sola confirmación de cvs

En SVN, para cada confirmación (puede implicar varios archivos), incrementará el número de revisión del repositorio completo en uno. Por lo tanto, podemos vincular fácilmente todos los archivos múltiples que se enviaron en una única confirmación.

Ahora la dificultad con el mismo caso en CVS es que incrementará los números de revisión de todos los archivos individualmente. Supongamos que una confirmación implica los siguientes archivos:

file1.c // revisión asignada como parte de esta confirmación..1.5.10.2
archivo2.c // revisión asignada como parte de esta confirmación..1.41.10.1

y el comentario dado para este commit es "First Bug Fix".

Ahora, la única forma de obtener todos los archivos registrados como parte de este compromiso es buscar entre todos los registros de cvs para comentar "First Bug Fix" y esperemos que solo devuelva las dos revisiones de archivo mencionadas anteriormente.

Por favor, comparta sus puntos de vista sobre si hay alguna forma mejor en CVS para realizar un seguimiento de todos los archivos registrados en una única confirmación en lugar de retransmitir en el comentario dado como parte de la confirmación.

+1

han visto cvs haciendo 'Commit Identificador', sin saber si se trata de una norma extenstion ninguno más o menos. Y no hay idea de cómo usarlos para nada. –

Respuesta

11

Creo que CVSps podría hacer lo que está buscando.

"CVSps es un programa para la generación de la información 'conjunto de parches' de un repositorio de CVS. Un conjunto de parches en este caso se define como un conjunto de cambios realizados en una colección de archivos, y todo comprometido al mismo tiempo (usando un solo Comando 'cvs commit'). Esta información es valiosa para ver el panorama completo de la evolución de un proyecto de cvs. Mientras cvs rastrea la información de revisión, a menudo es difícil ver qué cambios se cometieron "atómicamente" al repositorio ".

Este cvsps se basa en el cliente cvs. Asegúrese de tener la versión adecuada de cvs que admita el comando rlog (1.1.1)

+0

Interesante. Me pregunto de qué trabaja CVSps? Me pregunto si cvsps funciona en diferentes directorios, ya que la marca de tiempo puede ser diferente. Ciertamente CVSzilla agrega muchas características muy agradables: se relaciona con CVSweb y Bugzilla para proporcionar un entorno muy rico. –

+0

Veo que cvsps está disponible a través de repositorios estándar de Ubuntu. Marcando esta respuesta para decir gracias por enseñarme sobre cvsps. :) –

+0

Solo sé de su existencia más o menos, así que no sé mucho de cómo funciona –

2

CVS no tiene soporte inherente para "transacciones".

Necesita un poco de pegamento adicional para hacer esto. Afortunadamente, todo esto se ha hecho por usted y está disponible en una muy buena extensión llamada "cvszilla".

página La casa está aquí:

http://www.nyetwork.org/wiki/CVSZilla

Esto también se vincula a CVSweb, que es una gran manera de navegar a través de los módulos de CVS a través de una interfaz gráfica de usuario basada en web.

0

Bien, acabo de instalar cvsps y lo ejecuté desde el nivel superior. Aquí hay una muestra de la salida ... este es uno de los pocos cientos conjuntos de parches en mi módulo. Tenga en cuenta que, de hecho, esto funciona en diferentes árboles de directorios.

--------------------- 
PatchSet 221   
Date: 2009/04/22 22:09:37 
Author: jlove-ext   
Branch: HEAD    
Tag: LCA_v1_0_0_0_v6  
Log:      
Bug: 45562    
Check the length of strings in messages. Namely: 

    * Logical server IDs cannot be more than 18 characters (forcing a 
    TCSE protocol requirement).          
    * Overall 'sid' (filter) search string length cannot be more than 
    500 (this is actually more than the technical maximum messages are 
    allowed, but is close).           

Alarm messages and are now not going to crash either as the alarm text 
is shortened if necessary by the LCA.         

Members: 
     catalogue/extractCmnAlarms.pl:1.2->1.3 
     programs/ldapControlAgent/LcaCommon.h:1.18->1.19 
     programs/ldapControlAgent/LcaUtils.cc:1.20->1.21 
     programs/ldapControlAgent/LcaUtils.h:1.6->1.7  
     programs/ldapControlAgent/LdapSession.cc:1.61->1.62 
     tests/cts-45562.txt:INITIAL->1.1 

Por lo tanto, esto puede hacer lo que quiera. Bonito, Joakim. Sin embargo, como se mencionó, CVSzilla hace mucho más que esto:

  • Repositorios CVS navegables por la web (a través de CVSweb).
  • Transacciones navegables por la web.
  • Admite transacciones entre módulos.
  • Genera comandos CVS (usando 'cvs -j') para unir conjuntos de parches en otras ramas.
  • Integración con bugzilla (las transacciones se registran automáticamente contra errores).

Si todo lo que desea es solo la información del parche, vaya con cvsps. Si está buscando usar CVS en proyectos grandes durante un largo período de tiempo y está pensando en usar bugzilla para su seguimiento de errores, entonces le sugiero que busque en CVSzilla.

1

Quizás la ANT CvsChangeLog Task es otra opción. Ver http://ant.apache.org/manual/Tasks/changelog.html. Proporciona fecha y hora para un mensaje de registro. Puede generar buenos informes con XSLT; pruebe el ejemplo que se encuentra en la parte inferior de la página de manual de ANT.

Sé que es tarde para obtener una respuesta, pero quizás otros usuarios se encuentren con esto como yo lo hice (buscando) y aprecien la integración de ANT.

Cuestiones relacionadas