* [PATCH 1/3] doc/merge-config: list ecmerge as a built-in merge tool
2009-04-05 12:40 [PATCH 0/3] git-mergetool/difftool: TortoiseMerge and (g)vimdiff for Windows Markus Heidelberg
@ 2009-04-05 12:42 ` Markus Heidelberg
2009-04-05 12:42 ` [PATCH 2/3] git-mergetool/difftool: make (g)vimdiff workable under Windows Markus Heidelberg
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Markus Heidelberg @ 2009-04-05 12:42 UTC (permalink / raw)
To: Junio C Hamano
Cc: git, msysgit, Johannes Schindelin, David Aguilar, Charles Bailey
Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
---
Documentation/merge-config.txt | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/Documentation/merge-config.txt b/Documentation/merge-config.txt
index 1ff08ff..9c44af8 100644
--- a/Documentation/merge-config.txt
+++ b/Documentation/merge-config.txt
@@ -22,7 +22,8 @@ merge.stat::
merge.tool::
Controls which merge resolution program is used by
linkgit:git-mergetool[1]. Valid built-in values are: "kdiff3",
- "tkdiff", "meld", "xxdiff", "emerge", "vimdiff", "gvimdiff", and
+ "tkdiff", "meld", "xxdiff", "emerge", "vimdiff", "gvimdiff",
+ "ecmerge" and
"opendiff". Any other value is treated is custom merge tool
and there must be a corresponding mergetool.<tool>.cmd option.
--
1.6.2.2.460.g49e5c
^ permalink raw reply related [flat|nested] 5+ messages in thread* [PATCH 2/3] git-mergetool/difftool: make (g)vimdiff workable under Windows
2009-04-05 12:40 [PATCH 0/3] git-mergetool/difftool: TortoiseMerge and (g)vimdiff for Windows Markus Heidelberg
2009-04-05 12:42 ` [PATCH 1/3] doc/merge-config: list ecmerge as a built-in merge tool Markus Heidelberg
@ 2009-04-05 12:42 ` Markus Heidelberg
2009-04-05 12:43 ` [PATCH 3/3] git-mergetool: add new merge tool TortoiseMerge Markus Heidelberg
2009-04-05 13:52 ` [PATCH 0/3] git-mergetool/difftool: TortoiseMerge and (g)vimdiff for Windows Johannes Schindelin
3 siblings, 0 replies; 5+ messages in thread
From: Markus Heidelberg @ 2009-04-05 12:42 UTC (permalink / raw)
To: Junio C Hamano
Cc: git, msysgit, Johannes Schindelin, David Aguilar, Charles Bailey
Under Windows vimdiff and gvimdiff are not available as symbolic links,
but as batch files vimdiff.bat and gvimdiff.bat. These files weren't
found by 'type vimdiff' which led to the following error:
The merge tool vimdiff is not available as 'vimdiff'
Even if they were found, it wouldn't work to invoke these batch files
from git-mergetool.
To solve this, use vim and gvim (vim.exe and gvim.exe) and pass the -d
command line switch over to them.
Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
---
contrib/difftool/git-difftool-helper | 10 ++++++++--
git-mergetool.sh | 10 ++++++++--
2 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/contrib/difftool/git-difftool-helper b/contrib/difftool/git-difftool-helper
index 9c0a134..e481913 100755
--- a/contrib/difftool/git-difftool-helper
+++ b/contrib/difftool/git-difftool-helper
@@ -86,11 +86,11 @@ launch_merge_tool () {
;;
vimdiff)
- "$merge_tool_path" -c "wincmd l" "$LOCAL" "$REMOTE"
+ "$merge_tool_path" -d -c "wincmd l" "$LOCAL" "$REMOTE"
;;
gvimdiff)
- "$merge_tool_path" -c "wincmd l" -f "$LOCAL" "$REMOTE"
+ "$merge_tool_path" -d -c "wincmd l" -f "$LOCAL" "$REMOTE"
;;
xxdiff)
@@ -160,6 +160,12 @@ init_merge_tool_path() {
merge_tool_path=$(git config mergetool."$1".path)
if test -z "$merge_tool_path"; then
case "$1" in
+ vimdiff)
+ merge_tool_path=vim
+ ;;
+ gvimdiff)
+ merge_tool_path=gvim
+ ;;
emerge)
merge_tool_path=emacs
;;
diff --git a/git-mergetool.sh b/git-mergetool.sh
index 87fa88a..6e611e9 100755
--- a/git-mergetool.sh
+++ b/git-mergetool.sh
@@ -214,12 +214,12 @@ merge_file () {
;;
vimdiff)
touch "$BACKUP"
- "$merge_tool_path" -c "wincmd l" "$LOCAL" "$MERGED" "$REMOTE"
+ "$merge_tool_path" -d -c "wincmd l" "$LOCAL" "$MERGED" "$REMOTE"
check_unchanged
;;
gvimdiff)
touch "$BACKUP"
- "$merge_tool_path" -c "wincmd l" -f "$LOCAL" "$MERGED" "$REMOTE"
+ "$merge_tool_path" -d -c "wincmd l" -f "$LOCAL" "$MERGED" "$REMOTE"
check_unchanged
;;
xxdiff)
@@ -359,6 +359,12 @@ init_merge_tool_path() {
merge_tool_path=`git config mergetool.$1.path`
if test -z "$merge_tool_path" ; then
case "$1" in
+ vimdiff)
+ merge_tool_path=vim
+ ;;
+ gvimdiff)
+ merge_tool_path=gvim
+ ;;
emerge)
merge_tool_path=emacs
;;
--
1.6.2.2.460.g49e5c
^ permalink raw reply related [flat|nested] 5+ messages in thread* [PATCH 3/3] git-mergetool: add new merge tool TortoiseMerge
2009-04-05 12:40 [PATCH 0/3] git-mergetool/difftool: TortoiseMerge and (g)vimdiff for Windows Markus Heidelberg
2009-04-05 12:42 ` [PATCH 1/3] doc/merge-config: list ecmerge as a built-in merge tool Markus Heidelberg
2009-04-05 12:42 ` [PATCH 2/3] git-mergetool/difftool: make (g)vimdiff workable under Windows Markus Heidelberg
@ 2009-04-05 12:43 ` Markus Heidelberg
2009-04-05 13:52 ` [PATCH 0/3] git-mergetool/difftool: TortoiseMerge and (g)vimdiff for Windows Johannes Schindelin
3 siblings, 0 replies; 5+ messages in thread
From: Markus Heidelberg @ 2009-04-05 12:43 UTC (permalink / raw)
To: Junio C Hamano
Cc: git, msysgit, Johannes Schindelin, David Aguilar, Charles Bailey
TortoiseMerge comes with TortoiseSVN or TortoiseGit for Windows. It can
only be used as a merge tool with an existing base file. It cannot be
used without a base nor as a diff tool.
The documentation only mentions the slash '/' as command line option
prefix, which refused to work, but the parser also accepts the dash '-'
See http://code.google.com/p/msysgit/issues/detail?id=226
Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
---
Documentation/git-mergetool.txt | 3 ++-
Documentation/merge-config.txt | 2 +-
git-mergetool.sh | 16 +++++++++++++---
3 files changed, 16 insertions(+), 5 deletions(-)
diff --git a/Documentation/git-mergetool.txt b/Documentation/git-mergetool.txt
index 5d3c632..5edac4d 100644
--- a/Documentation/git-mergetool.txt
+++ b/Documentation/git-mergetool.txt
@@ -26,7 +26,8 @@ OPTIONS
--tool=<tool>::
Use the merge resolution program specified by <tool>.
Valid merge tools are:
- kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge, and opendiff
+ kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge,
+ tortoisemerge and opendiff
+
If a merge resolution program is not specified, 'git-mergetool'
will use the configuration variable `merge.tool`. If the
diff --git a/Documentation/merge-config.txt b/Documentation/merge-config.txt
index 9c44af8..8c10f66 100644
--- a/Documentation/merge-config.txt
+++ b/Documentation/merge-config.txt
@@ -23,7 +23,7 @@ merge.tool::
Controls which merge resolution program is used by
linkgit:git-mergetool[1]. Valid built-in values are: "kdiff3",
"tkdiff", "meld", "xxdiff", "emerge", "vimdiff", "gvimdiff",
- "ecmerge" and
+ "ecmerge", tortoisemerge and
"opendiff". Any other value is treated is custom merge tool
and there must be a corresponding mergetool.<tool>.cmd option.
diff --git a/git-mergetool.sh b/git-mergetool.sh
index 6e611e9..be9717a 100755
--- a/git-mergetool.sh
+++ b/git-mergetool.sh
@@ -265,6 +265,16 @@ merge_file () {
fi
status=$?
;;
+ tortoisemerge)
+ if base_present ; then
+ touch "$BACKUP"
+ "$merge_tool_path" -base:"$BASE" -mine:"$LOCAL" -theirs:"$REMOTE" -merged:"$MERGED"
+ check_unchanged
+ else
+ echo "TortoiseMerge cannot be used without a base" 1>&2
+ status=1
+ fi
+ ;;
*)
if test -n "$merge_tool_cmd"; then
if test "$merge_tool_trust_exit_code" = "false"; then
@@ -345,7 +355,7 @@ valid_custom_tool()
valid_tool() {
case "$1" in
- kdiff3 | tkdiff | xxdiff | meld | opendiff | emerge | vimdiff | gvimdiff | ecmerge)
+ kdiff3 | tkdiff | xxdiff | meld | opendiff | emerge | vimdiff | gvimdiff | ecmerge | tortoisemerge)
;; # happy
*)
if ! valid_custom_tool "$1"; then
@@ -404,9 +414,9 @@ fi
if test -z "$merge_tool" ; then
if test -n "$DISPLAY"; then
if test -n "$GNOME_DESKTOP_SESSION_ID" ; then
- merge_tool_candidates="meld kdiff3 tkdiff xxdiff gvimdiff"
+ merge_tool_candidates="meld kdiff3 tkdiff xxdiff tortoisemerge gvimdiff"
else
- merge_tool_candidates="kdiff3 tkdiff xxdiff meld gvimdiff"
+ merge_tool_candidates="kdiff3 tkdiff xxdiff meld tortoisemerge gvimdiff"
fi
fi
if echo "${VISUAL:-$EDITOR}" | grep 'emacs' > /dev/null 2>&1; then
--
1.6.2.2.460.g49e5c
^ permalink raw reply related [flat|nested] 5+ messages in thread* Re: [PATCH 0/3] git-mergetool/difftool: TortoiseMerge and (g)vimdiff for Windows
2009-04-05 12:40 [PATCH 0/3] git-mergetool/difftool: TortoiseMerge and (g)vimdiff for Windows Markus Heidelberg
` (2 preceding siblings ...)
2009-04-05 12:43 ` [PATCH 3/3] git-mergetool: add new merge tool TortoiseMerge Markus Heidelberg
@ 2009-04-05 13:52 ` Johannes Schindelin
3 siblings, 0 replies; 5+ messages in thread
From: Johannes Schindelin @ 2009-04-05 13:52 UTC (permalink / raw)
To: Markus Heidelberg
Cc: Junio C Hamano, git, msysgit, David Aguilar, Charles Bailey
Hi,
On Sun, 5 Apr 2009, Markus Heidelberg wrote:
> Patches 2/3 and 3/3 are already in 'da/difftool' in 'pu'. This series is
> based on 'master', now they can be applied to 4msysgit.git.
Thanks, they are in, as branch 'tortoisemerge'.
Ciao,
Dscho
^ permalink raw reply [flat|nested] 5+ messages in thread