Improvements to mergetool-lib
cover Improvements to mergetool-lib
This small series adds Beyond Compare 3 as a diff / merge tool and performs some minor improvements.
Sebastian Schuberth (3):
mergetool--lib: Sort tools alphabetically for easier lookup
mergetool--lib: Add Beyond Compare 3 as a tool
mergetool--lib: Add the proper executable name for ECMerge
Documentation/git-difftool.txt | 4 +- Documentation/git-mergetool.txt | 4 +- Documentation/merge-config.txt | 8 +- contrib/completion/git-completion.bash | 2 +- git-gui/lib/mergetool.tcl | 101 +++++++------ git-mergetool--lib.sh | 243 +++++++++++++++++--------------- 6 files changed, 195 insertions(+), 167 deletions(-)
Signature · 1 line
1.7.3.2.msysgit.11
PATCH 1/3 mergetool--lib: Sort tools alphabetically for easier lookup
--- Documentation/git-difftool.txt | 4 +- Documentation/git-mergetool.txt | 4 +- Documentation/merge-config.txt | 8 +- git-gui/lib/mergetool.tcl | 94 ++++++++-------- git-mergetool--lib.sh | 234 +++++++++++++++++++------------------- 5 files changed, 172 insertions(+), 172 deletions(-)
Documentation/git-difftool.txt +2 -2
@@ -30,8 +30,8 @@ OPTIONS --tool=<tool>:: Use the diff tool specified by <tool>. Valid merge tools are: - kdiff3, kompare, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, - ecmerge, diffuse, opendiff, p4merge and araxis. + araxis, diffuse, emerge, ecmerge, gvimdiff, kdiff3, + kompare, meld, opendiff, p4merge, tkdiff, vimdiff and xxdiff. + If a diff tool is not specified, 'git difftool' will use the configuration variable `diff.tool`. If the
Documentation/git-mergetool.txt +2 -2
@@ -26,8 +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, - diffuse, tortoisemerge, opendiff, p4merge and araxis. + araxis, diffuse, ecmerge, emerge, gvimdiff, kdiff3, + meld, opendiff, p4merge, tkdiff, tortoisemerge, vimdiff and xxdiff. + If a merge resolution program is not specified, 'git mergetool' will use the configuration variable `merge.tool`. If the
Documentation/merge-config.txt +4 -4
@@ -31,10 +31,10 @@ 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", - "diffuse", "ecmerge", "tortoisemerge", "p4merge", "araxis" and - "opendiff". Any other value is treated is custom merge tool + linkgit:git-mergetool[1]. Valid built-in values are: "araxis", + "diffuse", "ecmerge", "emerge", "gvimdiff", "kdiff3", "meld", + "opendiff", "p4merge", "tkdiff", "tortoisemerge", "vimdiff" + and "xxdiff". Any other value is treated is custom merge tool and there must be a corresponding mergetool.<tool>.cmd option. merge.verbosity::
git-gui/lib/mergetool.tcl +47 -47
137 lines not on this page · raw message
git-mergetool--lib.sh +117 -117
336 lines not on this page · raw message
Signature · 1 line
1.7.3.2.msysgit.11
PATCH 2/3 mergetool--lib: Add Beyond Compare 3 as a tool
In reply to Sebastian Schuberth--- Documentation/git-difftool.txt | 2 +- Documentation/git-mergetool.txt | 2 +- Documentation/merge-config.txt | 2 +- contrib/completion/git-completion.bash | 2 +- git-gui/lib/mergetool.tcl | 7 +++++++ git-mergetool--lib.sh | 22 ++++++++++++++++++++-- 6 files changed, 31 insertions(+), 6 deletions(-)
Documentation/git-difftool.txt +1 -1
@@ -30,7 +30,7 @@ OPTIONS --tool=<tool>:: Use the diff tool specified by <tool>. Valid merge tools are: - araxis, diffuse, emerge, ecmerge, gvimdiff, kdiff3, + araxis, bc3, diffuse, emerge, ecmerge, gvimdiff, kdiff3, kompare, meld, opendiff, p4merge, tkdiff, vimdiff and xxdiff. + If a diff tool is not specified, 'git difftool'
Documentation/git-mergetool.txt +1 -1
@@ -26,7 +26,7 @@ OPTIONS --tool=<tool>:: Use the merge resolution program specified by <tool>. Valid merge tools are: - araxis, diffuse, ecmerge, emerge, gvimdiff, kdiff3, + araxis, bc3, diffuse, ecmerge, emerge, gvimdiff, kdiff3, meld, opendiff, p4merge, tkdiff, tortoisemerge, vimdiff and xxdiff. + If a merge resolution program is not specified, 'git mergetool'
Documentation/merge-config.txt +1 -1
@@ -32,7 +32,7 @@ merge.stat:: merge.tool:: Controls which merge resolution program is used by linkgit:git-mergetool[1]. Valid built-in values are: "araxis", - "diffuse", "ecmerge", "emerge", "gvimdiff", "kdiff3", "meld", + "bc3", "diffuse", "ecmerge", "emerge", "gvimdiff", "kdiff3", "meld", "opendiff", "p4merge", "tkdiff", "tortoisemerge", "vimdiff" and "xxdiff". Any other value is treated is custom merge tool and there must be a corresponding mergetool.<tool>.cmd option.
contrib/completion/git-completion.bash +1 -1
@@ -1135,7 +1135,7 @@ _git_diff () } __git_mergetools_common="diffuse ecmerge emerge kdiff3 meld opendiff - tkdiff vimdiff gvimdiff xxdiff araxis p4merge + tkdiff vimdiff gvimdiff xxdiff araxis p4merge bc3 " _git_difftool ()
git-gui/lib/mergetool.tcl +7 -0
@@ -187,6 +187,13 @@ proc merge_resolve_tool2 {} { "$LOCAL" "$REMOTE" "$MERGED"] } } + bc3 { + if {$base_stage ne {}} { + set cmdline [list "$merge_tool_path" "$LOCAL" "$REMOTE" "$BASE" -mergeoutput="$MERGED"] + } else { + set cmdline [list "$merge_tool_path" "$LOCAL" "$REMOTE" -mergeoutput="$MERGED"] + } + } ecmerge { if {$base_stage ne {}} { set cmdline [list "$merge_tool_path" "$BASE" "$LOCAL" "$REMOTE" --default --mode=merge3 --to="$MERGED"]
git-mergetool--lib.sh +20 -2
@@ -13,6 +13,9 @@ translate_merge_tool_path () { araxis) echo compare ;; + bc3) + echo BCompare + ;; emerge) echo emacs ;;
@@ -46,7 +49,7 @@ check_unchanged () { valid_tool () { case "$1" in - araxis | diffuse | ecmerge | emerge | gvimdiff | \ + araxis | bc3 | diffuse | ecmerge | emerge | gvimdiff | \ kdiff3 | meld | opendiff | p4merge | tkdiff | vimdiff | xxdiff) ;; # happy kompare)
@@ -106,6 +109,21 @@ run_merge_tool () { >/dev/null 2>&1 fi ;; + bc3) + if merge_mode; then + touch "$BACKUP" + if $base_present; then + "$merge_tool_path" "$LOCAL" "$REMOTE" "$BASE" \ + -mergeoutput="$MERGED" + else + "$merge_tool_path" "$LOCAL" "$REMOTE" \ + -mergeoutput="$MERGED" + fi + check_unchanged + else + "$merge_tool_path" "$LOCAL" "$REMOTE" + fi + ;; diffuse) if merge_mode; then touch "$BACKUP"
@@ -337,7 +355,7 @@ guess_merge_tool () { else tools="opendiff kdiff3 tkdiff xxdiff meld $tools" fi - tools="$tools gvimdiff diffuse ecmerge p4merge araxis" + tools="$tools gvimdiff diffuse ecmerge p4merge araxis bc3" fi case "${VISUAL:-$EDITOR}" in *vim*)
Signature · 1 line
1.7.3.2.msysgit.11
PATCH 3/3 mergetool--lib: Add the proper executable name for ECMerge
In reply to Sebastian Schuberth--- git-mergetool--lib.sh | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-)
git-mergetool--lib.sh +3 -0
@@ -16,6 +16,9 @@ translate_merge_tool_path () { bc3) echo BCompare ;; + ecmerge) + echo guimerge + ;; emerge) echo emacs ;;
Signature · 1 line
1.7.3.2.msysgit.11
Quoted 8 lines · Sebastian Schuberth
This small series adds Beyond Compare 3 as a diff / merge tool and performs some minor improvements.
Sebastian Schuberth (3):
mergetool--lib: Sort tools alphabetically for easier lookup
mergetool--lib: Add Beyond Compare 3 as a tool
mergetool--lib: Add the proper executable name for ECMerge
Quoted 8 lines
Documentation/git-difftool.txt | 4 +- Documentation/git-mergetool.txt | 4 +- Documentation/merge-config.txt | 8 +- contrib/completion/git-completion.bash | 2 +- git-gui/lib/mergetool.tcl | 101 +++++++------ git-mergetool--lib.sh | 243 +++++++++++++++++--------------- 6 files changed, 195 insertions(+), 167 deletions(-)
I'm not an ecmerge or Beyond Compare user. The reordering of tools makes for a bit of a messy diff but I think it makes sense.
This series looks good to me. Has it been well tested?
Charles.
Quoted 4 lines · Charles Bailey
I'm not an ecmerge or Beyond Compare user. The reordering of tools makes for a bit of a messy diff but I think it makes sense.
This series looks good to me. Has it been well tested?
Not on all platforms. I'm mainly a Windows user where I'm using bc3 as a difftool and ecmerge as a mergetool, and it works fine for me. As soon as I boot into Linux again I plan to test the patches there, too. However, I'd appreciate if someone else could test, too.
Signature · 1 line
Sebastian Schuberth