remove - git tag commits
error p4merge (2)
Esto me funcionó usando msysGit en Windows 7:
git config --global merge.tool p4merge
git config --global mergetool.p4merge.cmd ''p4merge $BASE $LOCAL $REMOTE $MERGED''
No estoy seguro de por qué, pero la cita me jodió las cosas.
Estoy intentando usar p4merge con git pero obtengo:
Error al iniciar p4merge: "ruta / miArchivo" es (o apunta a) un archivo no válido (esto enumera las versiones BASE, LOCAL, REMOTA y estándar del archivo).
Git me dice sobre el conflicto, luego me pregunta si quiero iniciar la configuración de mergetool (p4merge) y luego obtengo el error anterior.
Nota adicional: sucede con cualquier archivo!
¿Alguna pista sobre qué es esto y cómo solucionarlo?
Verás aquí mi configuración para DiffMerge o KDiff3.
Basado en eso, recomendaría para p4merge:
git config --global merge.tool merge
git config --global mergetool.merge.cmd "merge.sh /"$PWD/$LOCAL/" /"$PWD/$BASE/" /"$PWD/$REMOTE/" /"$PWD/$MERGED/""
y merge.sh
es un contenedor (copiado en un directorio al que hace referencia su PATH
entorno PATH
), capaz de tener en cuenta el caso en el que no existe BASE
.
(cuando un archivo se crea en dos ramas diferentes y luego se fusiona, no habría un ancestro común para ese archivo)
#!/bin/sh
# Passing the following parameters to mergetool:
# local base remote merge_result
alocal=$1
base=$2
remote=$3
result=$4
if [ -f $base ]
then
p4merge.exe -dl "$base" "$alocal" "$remote" "$result"
else
p4merge.exe -dl "$result" "$alocal" "$remote" "$result"
fi
Usted puede tener en cuenta:
- El uso de
PWD
en la configuración de la fusión. - el uso de "
merge
" como nombre del nombre merge.tool (ya que la herramienta real se llama en el scriptmerge.sh
, donde puede cambiar entre cualquier número de herramientas de combinación que desee) - el uso de comillas dobles alrededor de
$base
,$alocal
,$remote
,$result
dentro del script - la ruta condicional para llamar a la herramienta, basada en la existencia de un archivo "base".
- la necesidad de tener siempre 3 archivos para fusionar como parámetros (incluso cuando ''base'' no existe ...)
Acaba de probarlo (resulta que puede descargar e instalar solo p4merge , sección Client / Visual Merge Tool, incluso si no tiene ningún otro producto P4 instalado).
Con la configuración descrita anteriormente, MSysGit1.6.3, sesión de DOS o sesión de Git bash:
Simplemente funciona TM .
Actualizar msysgit 1.7.x
Benjol menciona en los comentarios:
p4merge ahora es soportado nativamente por msysgit .
Esto significa que simplemente puedes hacer:
git config --global merge.tool p4merge
# and I recommend
git config --global mergetool.keepBackup false