diff options
author | David Aguilar <davvid@gmail.com> | 2011-08-18 00:23:46 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-08-19 00:09:19 -0700 |
commit | bc7a96a8965d4ce0651689301e1702a942dfb9f0 (patch) | |
tree | d4d6f70f97683090221c8f7ba4888a54e4d73a92 /mergetools/vim | |
parent | 240dc3e8edb3ae4ee968febc006fa761811c60e6 (diff) | |
download | git-bc7a96a8965d4ce0651689301e1702a942dfb9f0.tar.gz |
mergetool--lib: Refactor tools into separate files
Individual merge tools are now defined in a mergetools/$tool
file which is sourced at runtime.
The individual files are installed into $(git --exec-path)/mergetools/.
New tools can be added by creating a new file instead of editing the
git-mergetool--lib.sh scriptlet.
http://thread.gmane.org/gmane.comp.version-control.git/134906/focus=135006
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'mergetools/vim')
-rw-r--r-- | mergetools/vim | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/mergetools/vim b/mergetools/vim new file mode 100644 index 0000000000..619594ae4b --- /dev/null +++ b/mergetools/vim @@ -0,0 +1,44 @@ +diff_cmd () { + case "$1" in + gvimdiff|vimdiff) + "$merge_tool_path" -R -f -d \ + -c 'wincmd l' -c 'cd $GIT_PREFIX' "$LOCAL" "$REMOTE" + ;; + gvimdiff2|vimdiff2) + "$merge_tool_path" -R -f -d \ + -c 'wincmd l' -c 'cd $GIT_PREFIX' "$LOCAL" "$REMOTE" + ;; + esac +} + +merge_cmd () { + touch "$BACKUP" + case "$1" in + gvimdiff|vimdiff) + if $base_present + then + "$merge_tool_path" -f -d -c 'wincmd J' \ + "$MERGED" "$LOCAL" "$BASE" "$REMOTE" + else + "$merge_tool_path" -f -d -c 'wincmd l' \ + "$LOCAL" "$MERGED" "$REMOTE" + fi + ;; + gvimdiff2|vimdiff2) + "$merge_tool_path" -f -d -c 'wincmd l' \ + "$LOCAL" "$MERGED" "$REMOTE" + ;; + esac + check_unchanged +} + +translate_merge_tool_path() { + case "$1" in + gvimdiff|gvimdiff2) + echo gvim + ;; + vimdiff|vimdiff2) + echo vim + ;; + esac +} |