2011-12-27 8 views

Respuesta

11

La manera real de ver información sobre los archivos es utilizar hg status. Esta muestra los archivos que fueron modificados en la revisión 100:

$ hg status -c 100 

Pero si usted quiere tener los mensajes de registro, así, a continuación, hg log es, por supuesto, un punto de partida natural. Desafortunadamente no hay sin interruptor incorporado que lo hará mostrar un archivo por línea.

Sin embargo, la salida de hg log está controlada por template system y puede escribir sus propios estilos para ella. El estilo predeterminado es here y se puede personalizar para hacer lo que quiera, cambiando

file = ' {file}' 

a

file = '{file}\n' 

A continuación, guarde el nuevo estilo que my-default.style y añadir

[ui] 
style = ~/path/to/my-default.style 

a su configuración archivo. Esto le da un archivo por línea e incluso funciona cuando hay espacios en sus nombres de archivo.

Conozco un problema: pierde colores en la salida hg log. ¡Resulta que Mercurial está haciendo trampa aquí! En realidad, no usa la plantilla predeterminada que te mostré al generar salida de registro. No usa ningún sistema de plantilla en absoluto, solo genera la salida usando código directo ya que es más rápido. El problema es que la extensión de color solo funciona con la plantilla codificada. Cuando cambia a una plantilla personalizada y, por lo tanto, invoca el motor de plantilla, pierde la salida de color.

Sin embargo, puede recuperar los colores insertando el ANSI escape codes directamente en su plantilla (en sistemas tipo Unix).Cambiando

changeset = 'changeset: {rev}:{node|short}\n{branches}... 

a

changeset = '\033[33mchangeset: {rev}:{node|short}\033[0m\n{branches}... 

hace el truco y códigos duros una línea de cabecera amarilla para el conjunto de cambios. Ajuste también las líneas changeset_verbose y changeset_quiet y obtendrá resultados coloreados con su propia plantilla.

+0

Para la vida de mí, no puedo conseguir que esto funcione. Establecí el estilo de línea = "ruta a mi archivo \ my-style.default" y Hg sigue diciendo "abortar: estilo no encontrado:" ruta a mi archivo \ my-style.default "...?! Do ¿Tiene alguna idea, quizás? – Rook

+0

¿Usó comillas dobles alrededor del nombre del archivo? Como en 'style =" la ruta "' Sorprendentemente, los valores de configuración no se citan en los archivos de configuración de Mercurial, por lo que debería ser 'style = the path'. –

+0

A-ah, usted mencionó - sin comillas dobles Sí, mi error ... funciona ahora. No esperaba eso. – Rook

1

Creo que no hay manera integrada para lograr esto, pero un poco de sed (también disponible para Windows: http://gnuwin32.sourceforge.net/packages/sed.htm) puede ayudar:

hg log --template "Rev: {rev}:{node}\nDate: {date|isodate}\nFiles: {files}\n\n" -l 10 | sed -e '/^Files:/s/ /\n /g' 

Salida:

Rev: 1:2538bd4661c755ccab9b68e1d5e91144f6f97d33 
Date: 2011-12-20 15:47 +0100 
Files: 
    test1.txt 

Rev: 2:853a6f3c505308c9babff5a5a2f1e09303f1689c 
Date: 2011-12-20 15:44 +0100 
Files: 
    test2.txt 
    test3.txt 

Explicación de sed -e '/^Files:/s/ /\n /g':

  1. /^Files:/ búsquedas de líneas que comienzan archivos woth": ", y aplica la siguiente búsqueda y reemplazar solo a esas líneas
  2. s/ /\n /g reemplaza todas las líneas con una línea nueva, seguidas de los espacios.

Esta solución no funcionará cuando los nombres de los archivos contengan espacios.

0
  • hg log --style changelog

O

  • hg log --template "Description: {desc}\n" - palabras clave soportados como la descripción, archivos, etc se enumeran here
5

El archivo hg template help tiene esta joya en sus ejemplos.

Listas de formatos, p. Archivos:

$ hg log -r 0 --template "files:\n{files % ' {file}\n'}"

Esto funciona en Windows sin ningún tipo de traducción.

0

Para ver todos los archivos que han cambiado en una revisión, utilice:

hg status --change REV 
Cuestiones relacionadas