Skip to content

Commit fbc9629

Browse files
committed
Merge branch 'ss/git-gui-mergetool'
2 parents 35b6f72 + f3768a6 commit fbc9629

File tree

1 file changed

+54
-47
lines changed

1 file changed

+54
-47
lines changed

lib/mergetool.tcl

Lines changed: 54 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -175,66 +175,77 @@ proc merge_resolve_tool2 {} {
175175

176176
# Build the command line
177177
switch -- $tool {
178-
kdiff3 {
178+
araxis {
179179
if {$base_stage ne {}} {
180-
set cmdline [list "$merge_tool_path" --auto --L1 "$MERGED (Base)" \
181-
--L2 "$MERGED (Local)" --L3 "$MERGED (Remote)" -o "$MERGED" "$BASE" "$LOCAL" "$REMOTE"]
180+
set cmdline [list "$merge_tool_path" -wait -merge -3 -a1 \
181+
-title1:"'$MERGED (Base)'" -title2:"'$MERGED (Local)'" \
182+
-title3:"'$MERGED (Remote)'" \
183+
"$BASE" "$LOCAL" "$REMOTE" "$MERGED"]
182184
} else {
183-
set cmdline [list "$merge_tool_path" --auto --L1 "$MERGED (Local)" \
184-
--L2 "$MERGED (Remote)" -o "$MERGED" "$LOCAL" "$REMOTE"]
185+
set cmdline [list "$merge_tool_path" -wait -2 \
186+
-title1:"'$MERGED (Local)'" -title2:"'$MERGED (Remote)'" \
187+
"$LOCAL" "$REMOTE" "$MERGED"]
185188
}
186189
}
187-
tkdiff {
190+
bc3 {
188191
if {$base_stage ne {}} {
189-
set cmdline [list "$merge_tool_path" -a "$BASE" -o "$MERGED" "$LOCAL" "$REMOTE"]
192+
set cmdline [list "$merge_tool_path" "$LOCAL" "$REMOTE" "$BASE" -mergeoutput="$MERGED"]
190193
} else {
191-
set cmdline [list "$merge_tool_path" -o "$MERGED" "$LOCAL" "$REMOTE"]
194+
set cmdline [list "$merge_tool_path" "$LOCAL" "$REMOTE" -mergeoutput="$MERGED"]
192195
}
193196
}
194-
meld {
195-
set cmdline [list "$merge_tool_path" "$LOCAL" "$MERGED" "$REMOTE"]
197+
ecmerge {
198+
if {$base_stage ne {}} {
199+
set cmdline [list "$merge_tool_path" "$BASE" "$LOCAL" "$REMOTE" --default --mode=merge3 --to="$MERGED"]
200+
} else {
201+
set cmdline [list "$merge_tool_path" "$LOCAL" "$REMOTE" --default --mode=merge2 --to="$MERGED"]
202+
}
203+
}
204+
emerge {
205+
if {$base_stage ne {}} {
206+
set cmdline [list "$merge_tool_path" -f emerge-files-with-ancestor-command \
207+
"$LOCAL" "$REMOTE" "$BASE" "$basename"]
208+
} else {
209+
set cmdline [list "$merge_tool_path" -f emerge-files-command \
210+
"$LOCAL" "$REMOTE" "$basename"]
211+
}
196212
}
197213
gvimdiff {
198214
set cmdline [list "$merge_tool_path" -f "$LOCAL" "$MERGED" "$REMOTE"]
199215
}
200-
xxdiff {
216+
kdiff3 {
201217
if {$base_stage ne {}} {
202-
set cmdline [list "$merge_tool_path" -X --show-merged-pane \
203-
-R {Accel.SaveAsMerged: "Ctrl-S"} \
204-
-R {Accel.Search: "Ctrl+F"} \
205-
-R {Accel.SearchForward: "Ctrl-G"} \
206-
--merged-file "$MERGED" "$LOCAL" "$BASE" "$REMOTE"]
218+
set cmdline [list "$merge_tool_path" --auto --L1 "$MERGED (Base)" \
219+
--L2 "$MERGED (Local)" --L3 "$MERGED (Remote)" -o "$MERGED" "$BASE" "$LOCAL" "$REMOTE"]
207220
} else {
208-
set cmdline [list "$merge_tool_path" -X --show-merged-pane \
209-
-R {Accel.SaveAsMerged: "Ctrl-S"} \
210-
-R {Accel.Search: "Ctrl+F"} \
211-
-R {Accel.SearchForward: "Ctrl-G"} \
212-
--merged-file "$MERGED" "$LOCAL" "$REMOTE"]
221+
set cmdline [list "$merge_tool_path" --auto --L1 "$MERGED (Local)" \
222+
--L2 "$MERGED (Remote)" -o "$MERGED" "$LOCAL" "$REMOTE"]
213223
}
214224
}
225+
meld {
226+
set cmdline [list "$merge_tool_path" "$LOCAL" "$MERGED" "$REMOTE"]
227+
}
215228
opendiff {
216229
if {$base_stage ne {}} {
217230
set cmdline [list "$merge_tool_path" "$LOCAL" "$REMOTE" -ancestor "$BASE" -merge "$MERGED"]
218231
} else {
219232
set cmdline [list "$merge_tool_path" "$LOCAL" "$REMOTE" -merge "$MERGED"]
220233
}
221234
}
222-
ecmerge {
223-
if {$base_stage ne {}} {
224-
set cmdline [list "$merge_tool_path" "$BASE" "$LOCAL" "$REMOTE" --default --mode=merge3 --to="$MERGED"]
225-
} else {
226-
set cmdline [list "$merge_tool_path" "$LOCAL" "$REMOTE" --default --mode=merge2 --to="$MERGED"]
227-
}
235+
p4merge {
236+
set cmdline [list "$merge_tool_path" "$BASE" "$REMOTE" "$LOCAL" "$MERGED"]
228237
}
229-
emerge {
238+
tkdiff {
230239
if {$base_stage ne {}} {
231-
set cmdline [list "$merge_tool_path" -f emerge-files-with-ancestor-command \
232-
"$LOCAL" "$REMOTE" "$BASE" "$basename"]
240+
set cmdline [list "$merge_tool_path" -a "$BASE" -o "$MERGED" "$LOCAL" "$REMOTE"]
233241
} else {
234-
set cmdline [list "$merge_tool_path" -f emerge-files-command \
235-
"$LOCAL" "$REMOTE" "$basename"]
242+
set cmdline [list "$merge_tool_path" -o "$MERGED" "$LOCAL" "$REMOTE"]
236243
}
237244
}
245+
vimdiff {
246+
error_popup [mc "Not a GUI merge tool: '%s'" $tool]
247+
return
248+
}
238249
winmerge {
239250
if {$base_stage ne {}} {
240251
# This tool does not support 3-way merges.
@@ -245,25 +256,21 @@ proc merge_resolve_tool2 {} {
245256
-dl "Theirs File" -dr "Mine File" "$REMOTE" "$LOCAL" "$MERGED"]
246257
}
247258
}
248-
araxis {
259+
xxdiff {
249260
if {$base_stage ne {}} {
250-
set cmdline [list "$merge_tool_path" -wait -merge -3 -a1 \
251-
-title1:"'$MERGED (Base)'" -title2:"'$MERGED (Local)'" \
252-
-title3:"'$MERGED (Remote)'" \
253-
"$BASE" "$LOCAL" "$REMOTE" "$MERGED"]
261+
set cmdline [list "$merge_tool_path" -X --show-merged-pane \
262+
-R {Accel.SaveAsMerged: "Ctrl-S"} \
263+
-R {Accel.Search: "Ctrl+F"} \
264+
-R {Accel.SearchForward: "Ctrl-G"} \
265+
--merged-file "$MERGED" "$LOCAL" "$BASE" "$REMOTE"]
254266
} else {
255-
set cmdline [list "$merge_tool_path" -wait -2 \
256-
-title1:"'$MERGED (Local)'" -title2:"'$MERGED (Remote)'" \
257-
"$LOCAL" "$REMOTE" "$MERGED"]
267+
set cmdline [list "$merge_tool_path" -X --show-merged-pane \
268+
-R {Accel.SaveAsMerged: "Ctrl-S"} \
269+
-R {Accel.Search: "Ctrl+F"} \
270+
-R {Accel.SearchForward: "Ctrl-G"} \
271+
--merged-file "$MERGED" "$LOCAL" "$REMOTE"]
258272
}
259273
}
260-
p4merge {
261-
set cmdline [list "$merge_tool_path" "$BASE" "$REMOTE" "$LOCAL" "$MERGED"]
262-
}
263-
vimdiff {
264-
error_popup [mc "Not a GUI merge tool: '%s'" $tool]
265-
return
266-
}
267274
default {
268275
error_popup [mc "Unsupported merge tool '%s'" $tool]
269276
return

0 commit comments

Comments
 (0)