Step 1:
Save the following script, e.g: merger.sh:
#!/bin/sh
#
BASE=${1}
THEIRS=${2}
MINE=${3}
MERGED=${4}
WCPATH=${5}
vimdiff $MINE $THEIRS -c ":botright split $MERGED" -c ":diffthis" -c "setl statusline=MERGED | wincmd W | setl statusline=THEIRS | wincmd W | setl statusline=MINE"
Step 2:
Edit .subversion/config
and add following line:
merge-tool-cmd = /path/to/merger.sh
Step 3:
When you get following options during svn merge command, select option 'l
'.
This is to launch external tool to resolve conflicts.
Conflict discovered in 'main.h'.
Select: (p) postpone, (df) diff-full, (e) edit,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options: l
Step 4:
Now vim will be opened in diff mode with 3 files - mine, theirs and merged.
Make the required changes in the merged file, and do save and exit (:wqa
).
Step 5:
Now below options will appear again, select 'r
' (to accept the merged version) now.
Select: (p) postpone, (df) diff-full, (e) edit,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options: r