2010-08-04 25 views
12

Al ver un diff usando git diff, cada cambio comienza con línea como:partidas Personalización en git diff

@@ -28,41 +20,10 @@ namespace ConsoleApplication1 

Para C, la parte final es bastante descriptivo - que muestra por ejemplo la función en la que se produjo el cambio . Pero para C#, solo muestra el espacio de nombre, que no es muy útil. Creo que es porque muestra la última línea que no está sangrada. ¿Hay alguna manera de configurar esto?

+0

¿logró una buena configuración? Intenté * .cs diff = csharp, pero todavía obtengo espacios de nombres. diff = java funciona mejor ... – elmarco

+0

Sí, funciona para mí, ¿tienes una versión bastante reciente de git? diff = csharp debería funcionar desde 1.7.3. – svick

+0

1.7.10 aquí, desde debian inestable, intentaré cavar más tarde, por ahora java está bien :) – elmarco

Respuesta

16

lo he encontrado, la línea se llama cabecera trozo y the documentation dice cómo personalizarlo:

Definir una costumbre trozo-cabecera

Cada grupo de cambios (llamado un "trozo") en el la salida textual de diff tiene como prefijo una línea del formulario:

@@ -k,l +n,m @@ TEXT 

Esto se denomina encabezado de trozo. La porción "TEXTO" es por defecto una línea que comienza con un alfabeto, un guión bajo o un signo de dólar; esto coincide con lo que usa la salida GNU diff -p. Sin embargo, esta selección predeterminada no es adecuada para algunos contenidos, y puede usar un patrón personalizado para realizar una selección.

Primero, en .gitattributes, asignaría el atributo diff para las rutas.

*.tex diff=tex 

A continuación, debe definir una configuración "diff.tex.xfuncname" para especificar una expresión regular que coincide con una línea que usted quiere aparecer como el encabezado trozo "TEXTO". Añadir una sección a su archivo $GIT_DIR/config (o $HOME/.gitconfig archivo) así:

[diff "tex"] 
     xfuncname = "^(\\\\(sub)*section\\{.*)$" 

Nota. El analizador de archivos de configuración consume un único nivel de barras diagonales inversas, por lo que necesitaría duplicar las barras diagonales inversas; el patrón anterior selecciona una línea que comienza con una barra inclinada invertida, y cero o más apariciones de sub seguida de una sección seguida de una llave abierta, hasta el final de la línea.

3

Consulte gitattributes manpage, la sección "Generar texto de diferencias", y p. diff.csharp.xfuncname configuración (busque xfuncname).