@@ -10,17 +10,17 @@ merge_mode() {
1010
1111translate_merge_tool_path () {
1212 case " $1 " in
13- vimdiff|vimdiff2)
14- echo vim
15- ;;
16- gvimdiff|gvimdiff2)
17- echo gvim
13+ araxis)
14+ echo compare
1815 ;;
1916 emerge)
2017 echo emacs
2118 ;;
22- araxis)
23- echo compare
19+ gvimdiff|gvimdiff2)
20+ echo gvim
21+ ;;
22+ vimdiff|vimdiff2)
23+ echo vim
2424 ;;
2525 * )
2626 echo " $1 "
@@ -46,17 +46,16 @@ check_unchanged () {
4646
4747valid_tool () {
4848 case " $1 " in
49- kdiff3 | tkdiff | xxdiff | meld | opendiff | \
50- vimdiff | gvimdiff | vimdiff2 | gvimdiff2 | \
51- emerge | ecmerge | diffuse | araxis | p4merge)
49+ araxis | diffuse | ecmerge | emerge | gvimdiff | gvimdiff2 | \
50+ kdiff3 | meld | opendiff | p4merge | tkdiff | vimdiff | vimdiff2 | xxdiff)
5251 ;; # happy
53- tortoisemerge )
54- if ! merge_mode ; then
52+ kompare )
53+ if ! diff_mode ; then
5554 return 1
5655 fi
5756 ;;
58- kompare )
59- if ! diff_mode ; then
57+ tortoisemerge )
58+ if ! merge_mode ; then
6059 return 1
6160 fi
6261 ;;
@@ -89,88 +88,76 @@ run_merge_tool () {
8988 status=0
9089
9190 case " $1 " in
92- kdiff3 )
91+ araxis )
9392 if merge_mode; then
93+ touch " $BACKUP "
9494 if $base_present ; then
95- (" $merge_tool_path " --auto \
96- --L1 " $MERGED (Base)" \
97- --L2 " $MERGED (Local)" \
98- --L3 " $MERGED (Remote)" \
99- -o " $MERGED " \
100- " $BASE " " $LOCAL " " $REMOTE " \
101- > /dev/null 2>&1 )
95+ " $merge_tool_path " -wait -merge -3 -a1 \
96+ " $BASE " " $LOCAL " " $REMOTE " " $MERGED " \
97+ > /dev/null 2>&1
10298 else
103- (" $merge_tool_path " --auto \
104- --L1 " $MERGED (Local)" \
105- --L2 " $MERGED (Remote)" \
106- -o " $MERGED " \
107- " $LOCAL " " $REMOTE " \
108- > /dev/null 2>&1 )
99+ " $merge_tool_path " -wait -2 \
100+ " $LOCAL " " $REMOTE " " $MERGED " \
101+ > /dev/null 2>&1
109102 fi
110- status= $?
103+ check_unchanged
111104 else
112- (" $merge_tool_path " --auto \
113- --L1 " $MERGED (A)" \
114- --L2 " $MERGED (B)" " $LOCAL " " $REMOTE " \
115- > /dev/null 2>&1 )
105+ " $merge_tool_path " -wait -2 " $LOCAL " " $REMOTE " \
106+ > /dev/null 2>&1
116107 fi
117108 ;;
118- kompare)
119- " $merge_tool_path " " $LOCAL " " $REMOTE "
120- ;;
121- tkdiff)
109+ diffuse)
122110 if merge_mode; then
111+ touch " $BACKUP "
123112 if $base_present ; then
124- " $merge_tool_path " -a " $BASE " \
125- -o " $MERGED " " $LOCAL " " $REMOTE "
113+ " $merge_tool_path " \
114+ " $LOCAL " " $MERGED " " $REMOTE " \
115+ " $BASE " | cat
126116 else
127117 " $merge_tool_path " \
128- -o " $MERGED " " $LOCAL " " $REMOTE "
118+ " $LOCAL " " $MERGED " " $REMOTE " | cat
129119 fi
130- status= $?
120+ check_unchanged
131121 else
132- " $merge_tool_path " " $LOCAL " " $REMOTE "
122+ " $merge_tool_path " " $LOCAL " " $REMOTE " | cat
133123 fi
134124 ;;
135- p4merge )
125+ ecmerge )
136126 if merge_mode; then
137- touch " $BACKUP "
127+ touch " $BACKUP "
138128 if $base_present ; then
139- " $merge_tool_path " " $BASE " " $LOCAL " " $REMOTE " " $MERGED "
129+ " $merge_tool_path " " $BASE " " $LOCAL " " $REMOTE " \
130+ --default --mode=merge3 --to=" $MERGED "
140131 else
141- " $merge_tool_path " " $LOCAL " " $LOCAL " " $REMOTE " " $MERGED "
132+ " $merge_tool_path " " $LOCAL " " $REMOTE " \
133+ --default --mode=merge2 --to=" $MERGED "
142134 fi
143135 check_unchanged
144136 else
145- " $merge_tool_path " " $LOCAL " " $REMOTE "
146- fi
147- ;;
148- meld)
149- if merge_mode; then
150- touch " $BACKUP "
151- " $merge_tool_path " " $LOCAL " " $MERGED " " $REMOTE "
152- check_unchanged
153- else
154- " $merge_tool_path " " $LOCAL " " $REMOTE "
137+ " $merge_tool_path " --default --mode=diff2 \
138+ " $LOCAL " " $REMOTE "
155139 fi
156140 ;;
157- diffuse )
141+ emerge )
158142 if merge_mode; then
159- touch " $BACKUP "
160143 if $base_present ; then
161144 " $merge_tool_path " \
162- " $LOCAL " " $MERGED " " $REMOTE " \
163- " $BASE " | cat
145+ -f emerge-files-with-ancestor-command \
146+ " $LOCAL " " $REMOTE " " $BASE " \
147+ " $( basename " $MERGED " ) "
164148 else
165149 " $merge_tool_path " \
166- " $LOCAL " " $MERGED " " $REMOTE " | cat
150+ -f emerge-files-command \
151+ " $LOCAL " " $REMOTE " \
152+ " $( basename " $MERGED " ) "
167153 fi
168- check_unchanged
154+ status= $?
169155 else
170- " $merge_tool_path " " $LOCAL " " $REMOTE " | cat
156+ " $merge_tool_path " -f emerge-files-command \
157+ " $LOCAL " " $REMOTE "
171158 fi
172159 ;;
173- vimdiff| gvimdiff)
160+ gvimdiff|vimdiff )
174161 if merge_mode; then
175162 touch " $BACKUP "
176163 if $base_present ; then
@@ -186,7 +173,7 @@ run_merge_tool () {
186173 " $LOCAL " " $REMOTE "
187174 fi
188175 ;;
189- vimdiff2| gvimdiff2)
176+ gvimdiff2|vimdiff2 )
190177 if merge_mode; then
191178 touch " $BACKUP "
192179 " $merge_tool_path " -f -d -c " wincmd l" \
@@ -197,30 +184,42 @@ run_merge_tool () {
197184 " $LOCAL " " $REMOTE "
198185 fi
199186 ;;
200- xxdiff )
187+ kdiff3 )
201188 if merge_mode; then
202- touch " $BACKUP "
203189 if $base_present ; then
204- " $merge_tool_path " -X --show-merged-pane \
205- -R ' Accel.SaveAsMerged: "Ctrl-S"' \
206- -R ' Accel.Search: "Ctrl+F"' \
207- -R ' Accel.SearchForward: "Ctrl-G"' \
208- --merged-file " $MERGED " \
209- " $LOCAL " " $BASE " " $REMOTE "
190+ (" $merge_tool_path " --auto \
191+ --L1 " $MERGED (Base)" \
192+ --L2 " $MERGED (Local)" \
193+ --L3 " $MERGED (Remote)" \
194+ -o " $MERGED " \
195+ " $BASE " " $LOCAL " " $REMOTE " \
196+ > /dev/null 2>&1 )
210197 else
211- " $merge_tool_path " -X $extra \
212- -R ' Accel.SaveAsMerged: "Ctrl-S" ' \
213- -R ' Accel.Search: "Ctrl+F" ' \
214- -R ' Accel.SearchForward: "Ctrl-G" ' \
215- --merged-file " $MERGED " \
216- " $LOCAL " " $REMOTE "
198+ ( " $merge_tool_path " --auto \
199+ --L1 " $MERGED (Local) " \
200+ --L2 " $MERGED (Remote) " \
201+ -o " $MERGED " \
202+ " $LOCAL " " $REMOTE " \
203+ > /dev/null 2>&1 )
217204 fi
205+ status=$?
206+ else
207+ (" $merge_tool_path " --auto \
208+ --L1 " $MERGED (A)" \
209+ --L2 " $MERGED (B)" " $LOCAL " " $REMOTE " \
210+ > /dev/null 2>&1 )
211+ fi
212+ ;;
213+ kompare)
214+ " $merge_tool_path " " $LOCAL " " $REMOTE "
215+ ;;
216+ meld)
217+ if merge_mode; then
218+ touch " $BACKUP "
219+ " $merge_tool_path " " $LOCAL " " $MERGED " " $REMOTE "
218220 check_unchanged
219221 else
220- " $merge_tool_path " \
221- -R ' Accel.Search: "Ctrl+F"' \
222- -R ' Accel.SearchForward: "Ctrl-G"' \
223- " $LOCAL " " $REMOTE "
222+ " $merge_tool_path " " $LOCAL " " $REMOTE "
224223 fi
225224 ;;
226225 opendiff)
@@ -239,39 +238,31 @@ run_merge_tool () {
239238 " $merge_tool_path " " $LOCAL " " $REMOTE " | cat
240239 fi
241240 ;;
242- ecmerge )
241+ p4merge )
243242 if merge_mode; then
244- touch " $BACKUP "
243+ touch " $BACKUP "
245244 if $base_present ; then
246- " $merge_tool_path " " $BASE " " $LOCAL " " $REMOTE " \
247- --default --mode=merge3 --to=" $MERGED "
245+ " $merge_tool_path " " $BASE " " $LOCAL " " $REMOTE " " $MERGED "
248246 else
249- " $merge_tool_path " " $LOCAL " " $REMOTE " \
250- --default --mode=merge2 --to=" $MERGED "
247+ " $merge_tool_path " " $LOCAL " " $LOCAL " " $REMOTE " " $MERGED "
251248 fi
252249 check_unchanged
253250 else
254- " $merge_tool_path " --default --mode=diff2 \
255- " $LOCAL " " $REMOTE "
251+ " $merge_tool_path " " $LOCAL " " $REMOTE "
256252 fi
257253 ;;
258- emerge )
254+ tkdiff )
259255 if merge_mode; then
260256 if $base_present ; then
261- " $merge_tool_path " \
262- -f emerge-files-with-ancestor-command \
263- " $LOCAL " " $REMOTE " " $BASE " \
264- " $( basename " $MERGED " ) "
257+ " $merge_tool_path " -a " $BASE " \
258+ -o " $MERGED " " $LOCAL " " $REMOTE "
265259 else
266260 " $merge_tool_path " \
267- -f emerge-files-command \
268- " $LOCAL " " $REMOTE " \
269- " $( basename " $MERGED " ) "
261+ -o " $MERGED " " $LOCAL " " $REMOTE "
270262 fi
271263 status=$?
272264 else
273- " $merge_tool_path " -f emerge-files-command \
274- " $LOCAL " " $REMOTE "
265+ " $merge_tool_path " " $LOCAL " " $REMOTE "
275266 fi
276267 ;;
277268 tortoisemerge)
@@ -286,22 +277,30 @@ run_merge_tool () {
286277 status=1
287278 fi
288279 ;;
289- araxis )
280+ xxdiff )
290281 if merge_mode; then
291282 touch " $BACKUP "
292283 if $base_present ; then
293- " $merge_tool_path " -wait -merge -3 -a1 \
294- " $BASE " " $LOCAL " " $REMOTE " " $MERGED " \
295- > /dev/null 2>&1
284+ " $merge_tool_path " -X --show-merged-pane \
285+ -R ' Accel.SaveAsMerged: "Ctrl-S"' \
286+ -R ' Accel.Search: "Ctrl+F"' \
287+ -R ' Accel.SearchForward: "Ctrl-G"' \
288+ --merged-file " $MERGED " \
289+ " $LOCAL " " $BASE " " $REMOTE "
296290 else
297- " $merge_tool_path " -wait -2 \
298- " $LOCAL " " $REMOTE " " $MERGED " \
299- > /dev/null 2>&1
291+ " $merge_tool_path " -X $extra \
292+ -R ' Accel.SaveAsMerged: "Ctrl-S"' \
293+ -R ' Accel.Search: "Ctrl+F"' \
294+ -R ' Accel.SearchForward: "Ctrl-G"' \
295+ --merged-file " $MERGED " \
296+ " $LOCAL " " $REMOTE "
300297 fi
301298 check_unchanged
302299 else
303- " $merge_tool_path " -wait -2 " $LOCAL " " $REMOTE " \
304- > /dev/null 2>&1
300+ " $merge_tool_path " \
301+ -R ' Accel.Search: "Ctrl+F"' \
302+ -R ' Accel.SearchForward: "Ctrl-G"' \
303+ " $LOCAL " " $REMOTE "
305304 fi
306305 ;;
307306 * )
0 commit comments