tutorial tortoise subir repositorio proyecto español desvincular crear con como clonar carpeta archivos agregar svn

tortoise - ¿Cómo ves las entradas de registro SVN recientes?



svn tutorial español (9)

Escribir svn log arroja una lista increíblemente larga e inútil en una línea de comando. No tengo idea de por qué es el predeterminado. Si quisiera leer (o incluso leer) 300 entradas en el terminal, no me importaría escribir svn log --full o algo similar.

Tal vez los chicos SVN están pensando que quería alimentar esa salida a otro programa. Sin embargo, si ese es el caso, tendría más sentido tener la llamada más detallada para el programa, no el usuario del terminal.

De todos modos, ¿cómo veo solo alguna actividad reciente como las últimas 5 o 10 entradas para ver qué cambió?


Además de lo que dijo Bert F , muchos comandos, incluido log tienen la opción -r (o --revision ). Los siguientes son algunos ejemplos prácticos que usan esta opción para mostrar rangos de revisiones:

Para enumerar todo en orden ascendente:

svn log -r 1:HEAD

Para enumerar todo en orden descendente:

svn log -r HEAD:1

Para enumerar todo, desde el decimotercero hasta la base de la revisión actualmente pagada en orden ascendente:

svn log -r 13:BASE

Para obtener todo entre las fechas dadas:

svn log -r {2011-02-02}:{2011-02-03}

Puede combinar todas las expresiones anteriores con la opción --limit , para que pueda tener un control bastante detallado de lo que se imprime. Para obtener más información sobre estas -r expresiones, consulte svn help log o el capítulo correspondiente en el libro Version Control with Subversion


Como ya ha notado, svn log comando svn log ejecutado sin ningún argumento muestra todos los mensajes de registro que se relacionan con la URL que usted especifica o con la carpeta de copia de trabajo donde ejecuta el comando.

Siempre puede refinar / limitar los resultados del svn log :

  • svn log --limit NUM mostrará solo el primer NUM de revisiones,
  • svn log --revision REV1(:REV2) mostrará el mensaje de registro para la revisión REV1 o para el rango REV1 - REV2,
  • svn log --search mostrará las revisiones que coincidan con el patrón de búsqueda que especifique (el comando está disponible en Subversion 1.8 y el cliente más nuevo). Puedes buscar por
    • el autor de la revisión (es decir, el nombre de usuario de los committers),
    • fecha en que se realizó la revisión,
    • texto de comentario de revisión (mensaje de registro),
    • lista de rutas cambiadas en la revisión.

En caso de que alguien esté viendo esta vieja pregunta, un comando útil para ver los cambios desde su última actualización:

svn log -r $(svn info | grep Revision | cut -f 2 -d '' ''):HEAD -v

LE (gracias Gary por el comentario)
Lo mismo, pero mucho más corto y más lógico:

svn log -r BASE:HEAD -v


Esta respuesta se dirige a otras preguntas relacionadas con las opciones de subcomandos de Subversion. Para cada subcomando disponible (es decir, agregar, registrar, estado ...), simplemente puede agregar la opción --help para mostrar la lista completa de opciones disponibles que puede usar con su subcomando, así como ejemplos sobre cómo usarlas. El siguiente fragmento se toma directamente de la salida del comando svn log --help en la sección "ejemplos":

Show the latest 5 log messages for the current working copy directory and display paths changed in each commit: svn log -l 5 -v


Me gusta usar -v para el modo detallado.
Le dará la identificación de confirmación, los comentarios y todos los archivos afectados.

svn log -v --limit 4

Ejemplo de salida:

I added some migrations and deleted a test xml file ------------------------------------------------------------------------ r58687 | mr_x | 2012-04-02 15:31:31 +0200 (Mon, 02 Apr 2012) | 1 line Changed paths: A /trunk/java/App/src/database/support A /trunk/java/App/src/database/support/MIGRATE A /trunk/java/App/src/database/support/MIGRATE/remove_device.sql D /trunk/java/App/src/code/test.xml


Para agregar a lo que otros han dicho, también puede crear un alias en su archivo .bashrc o .bash_aliases:

alias svnlog=''svn log -l 30 | less''

o lo que quieras como tu predeterminado


Pero svn log todavía está en orden inverso, es decir, las entradas más recientes se muestran primero, se desplazan desde la parte superior de mi terminal y desaparecen. Realmente quiero ver las últimas entradas, es decir, el orden de clasificación debe ser cronológico. El único comando que hace esto parece ser svn log -r 1:HEAD pero eso lleva demasiado tiempo en un repositorio con unas 10000 entradas. He venido esto esto:

Muestre las últimas 10 entradas de subversión en orden cronológico:

svn log -r $(svn log -l 10 | grep ''^r[0-9]* '' | tail -1 | cut -f1 -d" "):HEAD


Pipe la salida a través de less u otro buscapersonas:

svn log | less


opción de limit , por ejemplo:

svn log --limit 4 svn log -l 4

Solo las últimas 4 entradas