Primero una advertencia! ¡Es muy fácil terminar perdiendo tus ediciones locales si te equivocas! Prueba de prueba!
Me temo que el script del enlace de pmod no funciona con svn 1.6 (actual en Ubuntu 11.04). La elaboración de código de pmod's link y here y asesoramiento here, hice este guión que parece funcionar bien:
#!/usr/bin/env python
# svn merge-tool python wrapper for meld
import sys
import subprocess
try:
# path to meld
meld = "/usr/bin/meld"
# file paths
base = sys.argv[1]
theirs = sys.argv[2]
mine = sys.argv[3]
merged = sys.argv[4]
# the call to meld
# For older meld versions:
# cmd = [meld, mine, base, theirs, merged]
# New meld versions: >= 1.8.4
cmd = [meld, mine, base, theirs, '-o', merged]
# Call meld, making sure it exits correctly
subprocess.check_call(cmd)
except:
print "Oh noes, an error!"
sys.exit(-1)
Guardar esto en alguna parte sensible (por ejemplo /usr/local/bin/svn-merge-meld.py
) y hacerlo ejecutable:
sudo chmod +x /usr/local/bin/svn-merge-meld.py
Luego editar ~/.subversion/config
y descomente la línea merge-tool-cmd =
, y configure la ruta a su comando.
Tenga en cuenta que cuando se produce un conflicto, se le preguntará qué hacer con él. Necesita escribir una sola 'l' y para svn ejecutar este script. Cuando haya terminado su combinación, debe escribir una 'r' para resolver el conflicto y copiar la versión fusionada a la copia de trabajo.
Gracias por la actualización. – Profpatsch
Elimina las importaciones de os y shutil: ya no se usan. – bcelary
Parece que la llamada a cmd para meld ha cambiado - uso 'cmd = [meld, mine, base, theirs, '-o', fusionada]' (meld 1.8.4). ' – Ayrat