Estoy escribiendo un pequeño conjunto de pruebas que ejecuta la herramienta para ser probado en un montón de archivos de entrada. Para cada archivo de entrada, la herramienta está creando un archivo de salida correspondiente (ambos están en XML). Los archivos de entrada y salida se registran en un repositorio de Git.¿Cómo uso git diff -G?
Los archivos de salida llevan el tiempo cuando se compiló la herramienta, por lo que los archivos de salida seguramente se modifican después de que fueron re-creados por la herramienta que se está probando.
Para echar un vistazo rápido si la salida ha cambiado (cuando modifiqué las fuentes de la herramienta), me gustaría verificar si el contenido del nodo OutputFingerprint
ha cambiado (hash simple sobre el contenido de las partes relevantes) del archivo de salida).
Leer el manual de git-diff
, he encontrado que hay una opción -G
:
-G < expresiones regulares >
buscar diferencias cuya añadido o eliminado la línea coincide con la expresión regular dada < >.
Lamentablemente, no proporcionan ningún ejemplo de cómo usar la opción -G
.
Mi primer pensamiento fue simplemente escribir
git diff -GOutputFingerprint
pero que está mal:
pensó> git diff -GOutputFingerprint
error: invalid option: -GOutputFingerprint
siguiente fue poner la expresión regular entre barras, que también es no satisfactoria:
> git diff -G/OutputFingerprint/
error: invalid option: -GC:/Program Files/Git/OutputFingerprint/
Además, simplemente poniendo un espacio entre -G
y OutputFingerprint
no funciona:
> git diff -G OutputFingerprint
fatal: ambiguous argument 'OutputFingerprint': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions
Cuando llamo git diff
sin params, consigo la modificación:
- <OutputFingerprint>e45807ca76fc5bb78e9e928c6fb7eed6</OutputFingerprint>
+ <OutputFingerprint>d0846851bc9d52b37f7919def78660a2</OutputFingerprint>
Otra idea era utilizar git diff -S".*OutputFingerprint.*" --pickaxe-regex
, sino también que esto no tiene éxito.
git --version
me da git version 1.7.3.1.msysgit.0
si es relevante.
Cuando pregunto git diff --help
, el manual proporcionado me muestra la opción -G
.
Entonces, ¿podría alguien darme un ejemplo de cómo usar git diff -G
correctamente?
trate de añadir un espacio entre el 'G 'y la expresión regular? – sarnold
heh, mi git 1.7.1 no tiene la opción '-G' - ¿Me pregunto si el suyo tiene soporte' -G'? Es posible que necesite una versión más nueva para respaldar lo que desea hacer. – sarnold
solo para asegurarse, ¿hay cambios reales para informar? Sin cambios no confirmados, obtuve tipos de errores de "revisión desconocida" incluso sin la '-G' ... Solo asegúrate de obtener algún tipo de diferencia antes de intentar filtrarla. – sarnold