From: Tim Henigan <tim.henigan@gmail.com>
To: gitster@pobox.com, git@vger.kernel.org, davvid@gmail.com
Cc: Tim Henigan <tim.henigan@gmail.com>
Subject: [PATCH 1/2] mergetools: split config files for vim and gvim
Date: Wed, 28 Mar 2012 15:58:12 -0400 [thread overview]
Message-ID: <1332964693-4058-1-git-send-email-tim.henigan@gmail.com> (raw)
In ae69fd0 (mergetool-lib: combine vimdiff and gvimdiff run blocks),
the config files for these two tools were combined since they were
nearly identical. This remains true, but having a single config
file for both makes it difficult to test that each is installed
and capable of running.
This commit splits the two config files. Now 'vim' and 'gvim'
follow the pattern used by all the other diff/merge tools:
- There is a single file per tool
- To use the tool, 'diff.tool' (or other similar option) may be
set to the exact name of the file.
Signed-off-by: Tim Henigan <tim.henigan@gmail.com>
---
This series should apply cleanly on the current master, but it was
developed on top of the series that implements the 'difftool --dir-diff'
option (currently th/difftool-diffall branched from pu).
This patch does some cleanup needed to be compatible with the new
'--dir-diff' option for 'difftool'.
One side-effect of this change which may be a problem is that we
lose support for the 'vimdiff2' and 'gvimdiff2' tools that were
created in 0008669 (mergetool-lib: make the three-way diff the
default for vim/gvim). The 2-panel options were not advertised in
any way, so I don't know if it is important to keep them.
git-mergetool--lib.sh | 9 +--------
mergetools/gvim | 21 +++++++++++++++++++++
mergetools/vim | 41 +++++++++--------------------------------
3 files changed, 31 insertions(+), 40 deletions(-)
create mode 100644 mergetools/gvim
diff --git a/git-mergetool--lib.sh b/git-mergetool--lib.sh
index ed630b2..89b16dc 100644
--- a/git-mergetool--lib.sh
+++ b/git-mergetool--lib.sh
@@ -44,14 +44,7 @@ valid_tool () {
}
setup_tool () {
- case "$1" in
- vim*|gvim*)
- tool=vim
- ;;
- *)
- tool="$1"
- ;;
- esac
+ tool="$1"
mergetools="$(git --exec-path)/mergetools"
# Load the default definitions
diff --git a/mergetools/gvim b/mergetools/gvim
new file mode 100644
index 0000000..b746e6f
--- /dev/null
+++ b/mergetools/gvim
@@ -0,0 +1,21 @@
+diff_cmd () {
+ "$merge_tool_path" -R -f -d \
+ -c 'wincmd l' -c 'cd $GIT_PREFIX' "$LOCAL" "$REMOTE"
+}
+
+merge_cmd () {
+ touch "$BACKUP"
+ 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
+ check_unchanged
+}
+
+translate_merge_tool_path() {
+ echo gvim
+}
diff --git a/mergetools/vim b/mergetools/vim
index 619594a..6817708 100644
--- a/mergetools/vim
+++ b/mergetools/vim
@@ -1,44 +1,21 @@
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_tool_path" -R -f -d \
+ -c 'wincmd l' -c 'cd $GIT_PREFIX' "$LOCAL" "$REMOTE"
}
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)
+ 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"
- ;;
- esac
+ fi
check_unchanged
}
translate_merge_tool_path() {
- case "$1" in
- gvimdiff|gvimdiff2)
- echo gvim
- ;;
- vimdiff|vimdiff2)
- echo vim
- ;;
- esac
+ echo vim
}
--
1.7.10.rc2.21.g8cb1a
next reply other threads:[~2012-03-28 19:58 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-28 19:58 Tim Henigan [this message]
2012-03-28 19:58 ` [PATCH 2/2] mergetools: fail if display needed but not present Tim Henigan
2012-03-28 21:02 ` Junio C Hamano
2012-03-28 20:53 ` [PATCH 1/2] mergetools: split config files for vim and gvim Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1332964693-4058-1-git-send-email-tim.henigan@gmail.com \
--to=tim.henigan@gmail.com \
--cc=davvid@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).