306 """ |
306 """ |
307 Generic driver for _imergelocal and _imergeother |
307 Generic driver for _imergelocal and _imergeother |
308 """ |
308 """ |
309 assert localorother is not None |
309 assert localorother is not None |
310 tool, toolpath, binary, symlink = toolconf |
310 tool, toolpath, binary, symlink = toolconf |
311 if symlink: |
|
312 repo.ui.warn(_('warning: :merge-%s cannot merge symlinks ' |
|
313 'for %s\n') % (localorother, fcd.path())) |
|
314 return False, 1 |
|
315 a, b, c, back = files |
311 a, b, c, back = files |
316 r = simplemerge.simplemerge(repo.ui, a, b, c, label=labels, |
312 r = simplemerge.simplemerge(repo.ui, a, b, c, label=labels, |
317 localorother=localorother) |
313 localorother=localorother) |
318 return True, r |
314 return True, r |
319 |
315 |
320 @internaltool('merge-local', mergeonly) |
316 @internaltool('merge-local', mergeonly, precheck=_symlinkcheck) |
321 def _imergelocal(*args, **kwargs): |
317 def _imergelocal(*args, **kwargs): |
322 """ |
318 """ |
323 Like :merge, but resolve all conflicts non-interactively in favor |
319 Like :merge, but resolve all conflicts non-interactively in favor |
324 of the local changes.""" |
320 of the local changes.""" |
325 success, status = _imergeauto(localorother='local', *args, **kwargs) |
321 success, status = _imergeauto(localorother='local', *args, **kwargs) |
326 return success, status |
322 return success, status |
327 |
323 |
328 @internaltool('merge-other', mergeonly) |
324 @internaltool('merge-other', mergeonly, precheck=_symlinkcheck) |
329 def _imergeother(*args, **kwargs): |
325 def _imergeother(*args, **kwargs): |
330 """ |
326 """ |
331 Like :merge, but resolve all conflicts non-interactively in favor |
327 Like :merge, but resolve all conflicts non-interactively in favor |
332 of the other changes.""" |
328 of the other changes.""" |
333 success, status = _imergeauto(localorother='other', *args, **kwargs) |
329 success, status = _imergeauto(localorother='other', *args, **kwargs) |