2010-04-21 9 views
6

¿Hay alguna manera de configurar hg com para que en el archivo de mensajes de confirmación que aparece en el editor externo, en lugar de simplemente mostrar qué archivos se cambiaron (en las líneas HG:), realmente muestre la diferencia completa? Prefiero ver el resultado y redactar mi mensaje de confirmación simultáneamente desde la comodidad de mi editor de texto en lugar de hacer hg diff en la línea de comandos por separado de antemano.¿Cómo consigo mercurial para mostrar la diferencia durante `hg com`?

+0

solo para agregar a la pregunta: OP está buscando un equivalente a '$ git commit -v' –

Respuesta

1

TortoiseHg hace esto fuera de la caja: un panel superior para el mensaje de compromiso y debajo de eso, un panel izquierdo que enumera los archivos afectados y un panel derecho que muestra los difs, uno después del otro.

2

Mercurial no tiene eso como función incorporada, pero es fácil de simular en su editor (como se inició mediante confirmación).

Aquí hay un ejemplo usando VIM: https://www.mercurial-scm.org/wiki/DiffsInCommitMessageInVIM

El script hgeditor https://www.mercurial-scm.org/hg/hg-stable/raw-file/tip/hgeditor proporciona ejemplos adicionales.

El jist básica es:

  1. al editor de lanzamiento de ejecución hg diff volver a dirigir a un archivo temporal
  2. tienen tanto el archivo de mensajes de confirmación y el diff
5

A partir de 2016 su carga editor, es posible hacerlo con la opción de configuración committemplate. Agregar lo siguiente a un archivo hgrc incluirá la diferencia en la ventana del editor en línea a medida que escribe su mensaje de confirmación.

[committemplate] 
changeset = {desc}\n\n 
    HG: {extramsg} 
    HG: user: {author}\n{ifeq(p2rev, "-1", "", 
    "HG: branch merge\n") 
    }HG: branch '{branch}'\n{if(currentbookmark, 
    "HG: bookmark '{currentbookmark}'\n") }{subrepos % 
    "HG: subrepo {subrepo}\n"    } 
    {splitlines(diff()) % 'HG: {line}\n'} 

Ver hg help hgrc y la búsqueda de committemplate para más información.

Cuestiones relacionadas