En Mercurial, uno puede definir un patrón para las herramientas externas de fusión y fusión (de modo que se llamen solo para los files que coincidan con el patrón especificado):
[diff-patterns] **.ext = difftool [merge-patterns] **.ext = mergetool
¿Cómo definir tales patrones en Git?
La sección [mergetool] en git-config (1) no menciona ningún patrón, máscara o similar.
EDITAR :
Aquí hay una parte relevante de mi .git / config:
[diff] tool = difftool [difftool "difftool"] cmd = difftool.git.sh "$LOCAL" "$REMOTE" "$BASE" [merge] tool = mergetool [mergetool "mergetool"] cmd = mergetool.git.sh "$LOCAL" "$REMOTE" "$BASE" "$MERGED"
Ahora funciona para todos los files.
Quiero que mi difftool y mergetool sean llamados solo para files con nombres que terminen en .ext
EDITAR :
He agregado un file .git / info / attributes con los siguientes contenidos:
*.ext diff=difftool *.ext merge=mergetool
También he agregado
[diff "difftool"] name = my custom diff driver driver = difftool.git.sh %A %B %O [merge "mergetool"] name = my custom merge driver driver = mergetool.git.sh %A %B %O %A
a mi .git / config.
Ahora corro
git difftool
Llama a KDiff3 en lugar de a mi difftool. ¿Qué hago mal?
Observación: Estoy jugando con difftool en lugar de mergetool porque es más fácil de probar y creo que si logro configurar difftool, será obvio para mí cómo configurar mergetool.
EDITAR :
Difftool ahora funciona.
.git / config:
[diff "difftool"] command = difftool.git.sh
.git / info / attributes:
.ext diff=difftool
difftool.git.sh (en RUTA)
#!/bin/sh difftool.jar "$2" "$5"
Pero hay un efecto secundario en Windows: git diff
ahora da como resultado APPCRASH.
EDITAR :
He descubierto cómo evitar colgar o colgar git diff
: uno debe usar git difftool
o llamar a git diff
través de sh
: sh -c "git diff"
Utilizaría un controller de combinación en un file de gitattributes
.
Ver por ejemplo " ¿Cómo le digo a git que siempre select mi versión local para las fusiones en conflicto en un file específico? "
*.ext merge=mymergetool
Puede usar patrones en un file de gitattributes.