mergetool--lib: Sort tools alphabetically for easier lookup
Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com> Tested-by: Chris Packham <judge.packham@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
046613c546
commit
aa03f60463
@ -31,8 +31,8 @@ OPTIONS
|
|||||||
--tool=<tool>::
|
--tool=<tool>::
|
||||||
Use the diff tool specified by <tool>.
|
Use the diff tool specified by <tool>.
|
||||||
Valid merge tools are:
|
Valid merge tools are:
|
||||||
kdiff3, kompare, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff,
|
araxis, diffuse, emerge, ecmerge, gvimdiff, kdiff3,
|
||||||
ecmerge, diffuse, opendiff, p4merge and araxis.
|
kompare, meld, opendiff, p4merge, tkdiff, vimdiff and xxdiff.
|
||||||
+
|
+
|
||||||
If a diff tool is not specified, 'git difftool'
|
If a diff tool is not specified, 'git difftool'
|
||||||
will use the configuration variable `diff.tool`. If the
|
will use the configuration variable `diff.tool`. If the
|
||||||
|
@ -26,8 +26,8 @@ OPTIONS
|
|||||||
--tool=<tool>::
|
--tool=<tool>::
|
||||||
Use the merge resolution program specified by <tool>.
|
Use the merge resolution program specified by <tool>.
|
||||||
Valid merge tools are:
|
Valid merge tools are:
|
||||||
kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge,
|
araxis, diffuse, ecmerge, emerge, gvimdiff, kdiff3,
|
||||||
diffuse, tortoisemerge, opendiff, p4merge and araxis.
|
meld, opendiff, p4merge, tkdiff, tortoisemerge, vimdiff and xxdiff.
|
||||||
+
|
+
|
||||||
If a merge resolution program is not specified, 'git mergetool'
|
If a merge resolution program is not specified, 'git mergetool'
|
||||||
will use the configuration variable `merge.tool`. If the
|
will use the configuration variable `merge.tool`. If the
|
||||||
|
@ -33,10 +33,10 @@ merge.stat::
|
|||||||
|
|
||||||
merge.tool::
|
merge.tool::
|
||||||
Controls which merge resolution program is used by
|
Controls which merge resolution program is used by
|
||||||
linkgit:git-mergetool[1]. Valid built-in values are: "kdiff3",
|
linkgit:git-mergetool[1]. Valid built-in values are: "araxis",
|
||||||
"tkdiff", "meld", "xxdiff", "emerge", "vimdiff", "gvimdiff",
|
"diffuse", "ecmerge", "emerge", "gvimdiff", "kdiff3", "meld",
|
||||||
"diffuse", "ecmerge", "tortoisemerge", "p4merge", "araxis" and
|
"opendiff", "p4merge", "tkdiff", "tortoisemerge", "vimdiff"
|
||||||
"opendiff". Any other value is treated is custom merge tool
|
and "xxdiff". Any other value is treated is custom merge tool
|
||||||
and there must be a corresponding mergetool.<tool>.cmd option.
|
and there must be a corresponding mergetool.<tool>.cmd option.
|
||||||
|
|
||||||
merge.verbosity::
|
merge.verbosity::
|
||||||
|
@ -10,17 +10,17 @@ merge_mode() {
|
|||||||
|
|
||||||
translate_merge_tool_path () {
|
translate_merge_tool_path () {
|
||||||
case "$1" in
|
case "$1" in
|
||||||
vimdiff|vimdiff2)
|
araxis)
|
||||||
echo vim
|
echo compare
|
||||||
;;
|
|
||||||
gvimdiff|gvimdiff2)
|
|
||||||
echo gvim
|
|
||||||
;;
|
;;
|
||||||
emerge)
|
emerge)
|
||||||
echo emacs
|
echo emacs
|
||||||
;;
|
;;
|
||||||
araxis)
|
gvimdiff|gvimdiff2)
|
||||||
echo compare
|
echo gvim
|
||||||
|
;;
|
||||||
|
vimdiff|vimdiff2)
|
||||||
|
echo vim
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "$1"
|
echo "$1"
|
||||||
@ -46,17 +46,16 @@ check_unchanged () {
|
|||||||
|
|
||||||
valid_tool () {
|
valid_tool () {
|
||||||
case "$1" in
|
case "$1" in
|
||||||
kdiff3 | tkdiff | xxdiff | meld | opendiff | \
|
araxis | diffuse | ecmerge | emerge | gvimdiff | gvimdiff2 | \
|
||||||
vimdiff | gvimdiff | vimdiff2 | gvimdiff2 | \
|
kdiff3 | meld | opendiff | p4merge | tkdiff | vimdiff | vimdiff2 | xxdiff)
|
||||||
emerge | ecmerge | diffuse | araxis | p4merge)
|
|
||||||
;; # happy
|
;; # happy
|
||||||
tortoisemerge)
|
kompare)
|
||||||
if ! merge_mode; then
|
if ! diff_mode; then
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
kompare)
|
tortoisemerge)
|
||||||
if ! diff_mode; then
|
if ! merge_mode; then
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
@ -89,69 +88,22 @@ run_merge_tool () {
|
|||||||
status=0
|
status=0
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
kdiff3)
|
araxis)
|
||||||
if merge_mode; then
|
|
||||||
if $base_present; then
|
|
||||||
("$merge_tool_path" --auto \
|
|
||||||
--L1 "$MERGED (Base)" \
|
|
||||||
--L2 "$MERGED (Local)" \
|
|
||||||
--L3 "$MERGED (Remote)" \
|
|
||||||
-o "$MERGED" \
|
|
||||||
"$BASE" "$LOCAL" "$REMOTE" \
|
|
||||||
> /dev/null 2>&1)
|
|
||||||
else
|
|
||||||
("$merge_tool_path" --auto \
|
|
||||||
--L1 "$MERGED (Local)" \
|
|
||||||
--L2 "$MERGED (Remote)" \
|
|
||||||
-o "$MERGED" \
|
|
||||||
"$LOCAL" "$REMOTE" \
|
|
||||||
> /dev/null 2>&1)
|
|
||||||
fi
|
|
||||||
status=$?
|
|
||||||
else
|
|
||||||
("$merge_tool_path" --auto \
|
|
||||||
--L1 "$MERGED (A)" \
|
|
||||||
--L2 "$MERGED (B)" "$LOCAL" "$REMOTE" \
|
|
||||||
> /dev/null 2>&1)
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
kompare)
|
|
||||||
"$merge_tool_path" "$LOCAL" "$REMOTE"
|
|
||||||
;;
|
|
||||||
tkdiff)
|
|
||||||
if merge_mode; then
|
|
||||||
if $base_present; then
|
|
||||||
"$merge_tool_path" -a "$BASE" \
|
|
||||||
-o "$MERGED" "$LOCAL" "$REMOTE"
|
|
||||||
else
|
|
||||||
"$merge_tool_path" \
|
|
||||||
-o "$MERGED" "$LOCAL" "$REMOTE"
|
|
||||||
fi
|
|
||||||
status=$?
|
|
||||||
else
|
|
||||||
"$merge_tool_path" "$LOCAL" "$REMOTE"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
p4merge)
|
|
||||||
if merge_mode; then
|
|
||||||
touch "$BACKUP"
|
|
||||||
if $base_present; then
|
|
||||||
"$merge_tool_path" "$BASE" "$LOCAL" "$REMOTE" "$MERGED"
|
|
||||||
else
|
|
||||||
"$merge_tool_path" "$LOCAL" "$LOCAL" "$REMOTE" "$MERGED"
|
|
||||||
fi
|
|
||||||
check_unchanged
|
|
||||||
else
|
|
||||||
"$merge_tool_path" "$LOCAL" "$REMOTE"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
meld)
|
|
||||||
if merge_mode; then
|
if merge_mode; then
|
||||||
touch "$BACKUP"
|
touch "$BACKUP"
|
||||||
"$merge_tool_path" "$LOCAL" "$MERGED" "$REMOTE"
|
if $base_present; then
|
||||||
|
"$merge_tool_path" -wait -merge -3 -a1 \
|
||||||
|
"$BASE" "$LOCAL" "$REMOTE" "$MERGED" \
|
||||||
|
>/dev/null 2>&1
|
||||||
|
else
|
||||||
|
"$merge_tool_path" -wait -2 \
|
||||||
|
"$LOCAL" "$REMOTE" "$MERGED" \
|
||||||
|
>/dev/null 2>&1
|
||||||
|
fi
|
||||||
check_unchanged
|
check_unchanged
|
||||||
else
|
else
|
||||||
"$merge_tool_path" "$LOCAL" "$REMOTE"
|
"$merge_tool_path" -wait -2 "$LOCAL" "$REMOTE" \
|
||||||
|
>/dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
diffuse)
|
diffuse)
|
||||||
@ -170,75 +122,6 @@ run_merge_tool () {
|
|||||||
"$merge_tool_path" "$LOCAL" "$REMOTE" | cat
|
"$merge_tool_path" "$LOCAL" "$REMOTE" | cat
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
vimdiff|gvimdiff)
|
|
||||||
if merge_mode; then
|
|
||||||
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
|
|
||||||
else
|
|
||||||
"$merge_tool_path" -f -d -c "wincmd l" \
|
|
||||||
"$LOCAL" "$REMOTE"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
vimdiff2|gvimdiff2)
|
|
||||||
if merge_mode; then
|
|
||||||
touch "$BACKUP"
|
|
||||||
"$merge_tool_path" -f -d -c "wincmd l" \
|
|
||||||
"$LOCAL" "$MERGED" "$REMOTE"
|
|
||||||
check_unchanged
|
|
||||||
else
|
|
||||||
"$merge_tool_path" -f -d -c "wincmd l" \
|
|
||||||
"$LOCAL" "$REMOTE"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
xxdiff)
|
|
||||||
if merge_mode; then
|
|
||||||
touch "$BACKUP"
|
|
||||||
if $base_present; then
|
|
||||||
"$merge_tool_path" -X --show-merged-pane \
|
|
||||||
-R 'Accel.SaveAsMerged: "Ctrl-S"' \
|
|
||||||
-R 'Accel.Search: "Ctrl+F"' \
|
|
||||||
-R 'Accel.SearchForward: "Ctrl-G"' \
|
|
||||||
--merged-file "$MERGED" \
|
|
||||||
"$LOCAL" "$BASE" "$REMOTE"
|
|
||||||
else
|
|
||||||
"$merge_tool_path" -X $extra \
|
|
||||||
-R 'Accel.SaveAsMerged: "Ctrl-S"' \
|
|
||||||
-R 'Accel.Search: "Ctrl+F"' \
|
|
||||||
-R 'Accel.SearchForward: "Ctrl-G"' \
|
|
||||||
--merged-file "$MERGED" \
|
|
||||||
"$LOCAL" "$REMOTE"
|
|
||||||
fi
|
|
||||||
check_unchanged
|
|
||||||
else
|
|
||||||
"$merge_tool_path" \
|
|
||||||
-R 'Accel.Search: "Ctrl+F"' \
|
|
||||||
-R 'Accel.SearchForward: "Ctrl-G"' \
|
|
||||||
"$LOCAL" "$REMOTE"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
opendiff)
|
|
||||||
if merge_mode; then
|
|
||||||
touch "$BACKUP"
|
|
||||||
if $base_present; then
|
|
||||||
"$merge_tool_path" "$LOCAL" "$REMOTE" \
|
|
||||||
-ancestor "$BASE" \
|
|
||||||
-merge "$MERGED" | cat
|
|
||||||
else
|
|
||||||
"$merge_tool_path" "$LOCAL" "$REMOTE" \
|
|
||||||
-merge "$MERGED" | cat
|
|
||||||
fi
|
|
||||||
check_unchanged
|
|
||||||
else
|
|
||||||
"$merge_tool_path" "$LOCAL" "$REMOTE" | cat
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
ecmerge)
|
ecmerge)
|
||||||
if merge_mode; then
|
if merge_mode; then
|
||||||
touch "$BACKUP"
|
touch "$BACKUP"
|
||||||
@ -274,6 +157,114 @@ run_merge_tool () {
|
|||||||
"$LOCAL" "$REMOTE"
|
"$LOCAL" "$REMOTE"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
gvimdiff|vimdiff)
|
||||||
|
if merge_mode; then
|
||||||
|
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
|
||||||
|
else
|
||||||
|
"$merge_tool_path" -f -d -c "wincmd l" \
|
||||||
|
"$LOCAL" "$REMOTE"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
gvimdiff2|vimdiff2)
|
||||||
|
if merge_mode; then
|
||||||
|
touch "$BACKUP"
|
||||||
|
"$merge_tool_path" -f -d -c "wincmd l" \
|
||||||
|
"$LOCAL" "$MERGED" "$REMOTE"
|
||||||
|
check_unchanged
|
||||||
|
else
|
||||||
|
"$merge_tool_path" -f -d -c "wincmd l" \
|
||||||
|
"$LOCAL" "$REMOTE"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
kdiff3)
|
||||||
|
if merge_mode; then
|
||||||
|
if $base_present; then
|
||||||
|
("$merge_tool_path" --auto \
|
||||||
|
--L1 "$MERGED (Base)" \
|
||||||
|
--L2 "$MERGED (Local)" \
|
||||||
|
--L3 "$MERGED (Remote)" \
|
||||||
|
-o "$MERGED" \
|
||||||
|
"$BASE" "$LOCAL" "$REMOTE" \
|
||||||
|
> /dev/null 2>&1)
|
||||||
|
else
|
||||||
|
("$merge_tool_path" --auto \
|
||||||
|
--L1 "$MERGED (Local)" \
|
||||||
|
--L2 "$MERGED (Remote)" \
|
||||||
|
-o "$MERGED" \
|
||||||
|
"$LOCAL" "$REMOTE" \
|
||||||
|
> /dev/null 2>&1)
|
||||||
|
fi
|
||||||
|
status=$?
|
||||||
|
else
|
||||||
|
("$merge_tool_path" --auto \
|
||||||
|
--L1 "$MERGED (A)" \
|
||||||
|
--L2 "$MERGED (B)" "$LOCAL" "$REMOTE" \
|
||||||
|
> /dev/null 2>&1)
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
kompare)
|
||||||
|
"$merge_tool_path" "$LOCAL" "$REMOTE"
|
||||||
|
;;
|
||||||
|
meld)
|
||||||
|
if merge_mode; then
|
||||||
|
touch "$BACKUP"
|
||||||
|
"$merge_tool_path" "$LOCAL" "$MERGED" "$REMOTE"
|
||||||
|
check_unchanged
|
||||||
|
else
|
||||||
|
"$merge_tool_path" "$LOCAL" "$REMOTE"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
opendiff)
|
||||||
|
if merge_mode; then
|
||||||
|
touch "$BACKUP"
|
||||||
|
if $base_present; then
|
||||||
|
"$merge_tool_path" "$LOCAL" "$REMOTE" \
|
||||||
|
-ancestor "$BASE" \
|
||||||
|
-merge "$MERGED" | cat
|
||||||
|
else
|
||||||
|
"$merge_tool_path" "$LOCAL" "$REMOTE" \
|
||||||
|
-merge "$MERGED" | cat
|
||||||
|
fi
|
||||||
|
check_unchanged
|
||||||
|
else
|
||||||
|
"$merge_tool_path" "$LOCAL" "$REMOTE" | cat
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
p4merge)
|
||||||
|
if merge_mode; then
|
||||||
|
touch "$BACKUP"
|
||||||
|
if $base_present; then
|
||||||
|
"$merge_tool_path" "$BASE" "$LOCAL" "$REMOTE" "$MERGED"
|
||||||
|
else
|
||||||
|
"$merge_tool_path" "$LOCAL" "$LOCAL" "$REMOTE" "$MERGED"
|
||||||
|
fi
|
||||||
|
check_unchanged
|
||||||
|
else
|
||||||
|
"$merge_tool_path" "$LOCAL" "$REMOTE"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
tkdiff)
|
||||||
|
if merge_mode; then
|
||||||
|
if $base_present; then
|
||||||
|
"$merge_tool_path" -a "$BASE" \
|
||||||
|
-o "$MERGED" "$LOCAL" "$REMOTE"
|
||||||
|
else
|
||||||
|
"$merge_tool_path" \
|
||||||
|
-o "$MERGED" "$LOCAL" "$REMOTE"
|
||||||
|
fi
|
||||||
|
status=$?
|
||||||
|
else
|
||||||
|
"$merge_tool_path" "$LOCAL" "$REMOTE"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
tortoisemerge)
|
tortoisemerge)
|
||||||
if $base_present; then
|
if $base_present; then
|
||||||
touch "$BACKUP"
|
touch "$BACKUP"
|
||||||
@ -286,22 +277,30 @@ run_merge_tool () {
|
|||||||
status=1
|
status=1
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
araxis)
|
xxdiff)
|
||||||
if merge_mode; then
|
if merge_mode; then
|
||||||
touch "$BACKUP"
|
touch "$BACKUP"
|
||||||
if $base_present; then
|
if $base_present; then
|
||||||
"$merge_tool_path" -wait -merge -3 -a1 \
|
"$merge_tool_path" -X --show-merged-pane \
|
||||||
"$BASE" "$LOCAL" "$REMOTE" "$MERGED" \
|
-R 'Accel.SaveAsMerged: "Ctrl-S"' \
|
||||||
>/dev/null 2>&1
|
-R 'Accel.Search: "Ctrl+F"' \
|
||||||
|
-R 'Accel.SearchForward: "Ctrl-G"' \
|
||||||
|
--merged-file "$MERGED" \
|
||||||
|
"$LOCAL" "$BASE" "$REMOTE"
|
||||||
else
|
else
|
||||||
"$merge_tool_path" -wait -2 \
|
"$merge_tool_path" -X $extra \
|
||||||
"$LOCAL" "$REMOTE" "$MERGED" \
|
-R 'Accel.SaveAsMerged: "Ctrl-S"' \
|
||||||
>/dev/null 2>&1
|
-R 'Accel.Search: "Ctrl+F"' \
|
||||||
|
-R 'Accel.SearchForward: "Ctrl-G"' \
|
||||||
|
--merged-file "$MERGED" \
|
||||||
|
"$LOCAL" "$REMOTE"
|
||||||
fi
|
fi
|
||||||
check_unchanged
|
check_unchanged
|
||||||
else
|
else
|
||||||
"$merge_tool_path" -wait -2 "$LOCAL" "$REMOTE" \
|
"$merge_tool_path" \
|
||||||
>/dev/null 2>&1
|
-R 'Accel.Search: "Ctrl+F"' \
|
||||||
|
-R 'Accel.SearchForward: "Ctrl-G"' \
|
||||||
|
"$LOCAL" "$REMOTE"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
|
Loading…
Reference in New Issue
Block a user