c# git visual-studio-2015 sourcetree p4merge

c# - Cómo integrar la resolución visual de conflictos(P4Merge) en SourceTree



git visual-studio-2015 (2)

Creo que no tienes problemas con P4Merge . Tu problema es

Acciones / Resolver conflictos / Lanzar elemento de menú de la herramienta de fusión externa no (está atenuado)

Creo que sourceTree tiene este comportamiento porque no tienes conflictos en la rama actual.

Puede verificar esto fácilmente: Ejecute el comando git mergetool master. -d y ver salida. Supongo que la salida será Sin archivos necesitan fusión .

Si tiene conflictos no resueltos en la fuente actual Acciones en árbol / Resolver conflictos habilitados para mí:

Edite una pregunta si su problema real con P4Merge y con MergeTool Source Tree funciona bien.

Desde hace bastante tiempo, me he sentido molesto por la falta de resolución de conflictos utilizable de SourceTree.

Se supone que hay un procedimiento para integrar p4Merge o alguna otra herramienta diff / merge en SourceTree. Por el momento, p4Merge es mi herramienta de elección; ahora solo necesito descubrir cómo

  1. Obtenga SourceTree para aceptar p4Merge como su herramienta merge / diff, y
  2. Ser capaz de llamar a p4Merge desde SourceTree para resolver conflictos.

Hasta ahora, lo único en lo que he tenido éxito es hacer que P4Merge muestre una diferencia desde SourceTree. Por lo tanto, el elemento de menú Acciones / Dif. Externa funciona, pero el elemento de menú Acciones / Resolver conflictos / Lanzar herramienta de fusión externa no (está atenuado).

He seleccionado P4Merge para la herramienta Diferir y la herramienta Fusionar en la pestaña Herramientas / Opciones / Diferencia en SourceTree. No puedo poner nada en los dos cuadros de línea de comando (incluso si supiera qué poner allí), porque también están atenuados.

¿Cómo hago que esto funcione?

SourceTree está en la versión 1.9.5.0, que debería ser la última al momento de escribir esto. P4Merge no parece tener un cuadro de diálogo Ayuda / Acerca de, pero se instaló recientemente (en los últimos 3 meses).


Tengo la versión 1.5.2.0 de SourceTree y configuré la herramienta de fusión externa como se ve en la captura de pantalla. P4Merge está instalado en C: / Program Files / Perforce y no está en la Path . No establecí ningún valor específico en .gitconfig con respecto a las herramientas diff / merge (me doy cuenta de que esto es algo así como ''funciona en la respuesta de mi máquina'', pero de hecho fue así de simple).

En cuanto al flujo de trabajo, diferentes equipos pueden tener diferentes enfoques. Lo que hacemos en nuestro equipo para cada trabajo de característica (generalmente realizado por un solo desarrollador) es el siguiente (las capturas de pantalla de cómo realizar cada operación en SourceTree se encuentran al final de la publicación):

  1. Rebase desarrollar rama
  2. Crear una nueva rama de características
  3. Trabajar en una característica, realizar confirmaciones (generalmente, múltiples)
  4. Si hubo muchos cambios para desarrollar desde el momento en que se realizó la bifurcación, podemos fusionarnos para desarrollar nuestra rama de características para resolver cualquier posible conflicto y asegurarnos de que la función aún funcione.
  5. Fusionar para desarrollar la rama seguida de Push: nuestro CI está configurado para desencadenar la implementación en el entorno de prueba cuando se presionan nuevos cambios para desarrollar una rama
  6. Si todo está bien, fusionaremos la rama de desarrollo a la rama principal, que desencadenaría la implementación en el entorno de producción.

Para volver a desarrollar la base:

Para crear una nueva rama de desarrollo:

Para fusionar, conviértase en una rama de características:

Aquí es cómo SourceTree muestra que hay conflictos después de la fusión:

Actualización: para verificar si SourceTree está configurado correctamente, le sugiero que haga lo siguiente:

  1. Descargue y descomprima localmente un pequeño repositorio con dos ramas de https://1drv.ms/u/s!Ahrx2cBEbNLOy1xsUNuZJrUe80Ox
  2. Agregue este repositorio a SourceTree ejecutando: Archivo - Clonar / Nuevo ... - Agregar Copia de trabajo - [seleccionar carpeta ''git-config'']
  3. Haga clic con el botón derecho en la rama con el nombre ''origen / versión-2'' y seleccione ''fusionar''
  4. Debería ver la advertencia acerca de los conflictos de combinación, y luego de hacer clic derecho en file.txt, debería aparecer lo siguiente: