tag remove practices crear commits commands best git perforce git-p4 p4merge

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 script merge.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