[Python-apps-team] Bug#701168: mercurial: Backport improvement to vimdiff configuration

Pierre-Yves David pierre-yves.david at logilab.fr
Fri Feb 22 11:07:35 UTC 2013


Package: mercurial
Version: 2.2.2-2
Severity: important
Tags: patch

During a merge conflict, vimdiff is very likely to be picked as the
default mergetool.

This have two majors issues


1) People tends to panic and just quit vimdiff. Vimdiff exit with a 0
   returns code and Mercurial see the conflict as resolved when nothing
   have been done. Ignoring change from on side of the merge.

   We configure vimdiff with vimdiff.check=changed to detect this
   situation. If the file did not changed we ask the user if the
   conflict have been resolve.

2) People tends to not know whats going on and how to get out of
   vimdiff.

   We configure vimdiff so display a message when launched

     hg merge conflict, type ":cq" to abort vimdiff

   As a bonus it teach people the ":cq" command that quit vimdiff with a
   non-zero exit code. Informing Mercurial that the conflict is
   unresolved.

The previous configuration led to multiple and regular data loss. I
would like this config to be backported in wheezy.

Here is the patch to apply to mergetool.rc

--- /etc/mercurial/hgrc.d/mergetools.rc 2011-09-12 22:38:01.000000000 +0200
+++ /tmp/mergetools.hgrc        2013-02-22 12:01:19.628259820 +0100
@@ -15,7 +15,8 @@
 gvimdiff.regname=path
 gvimdiff.priority=-9
 
-vimdiff.args=$local $other $base
+vimdiff.args=$local $other $base -c 'echohl WarningMsg | echo "merge conflict detected, type \":cq\" to abort" | echohl'
+vimdiff.check=changed
 vimdiff.priority=-10
 
 merge.checkconflicts=True





-- System Information:
Debian Release: 6.0.6
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.32-5-amd64 (SMP w/16 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

-- 
Pierre-Yves David

http://www.logilab.fr/

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.alioth.debian.org/pipermail/python-apps-team/attachments/20130222/4d4d7575/attachment.pgp>


More information about the Python-apps-team mailing list