comparison mercurial/filemerge.py @ 41613:a8ccd821b7d2

filemerge: migrate to scmutil.backuppath() Differential Revision: https://phab.mercurial-scm.org/D5856
author Martin von Zweigbergk <martinvonz@google.com>
date Mon, 04 Feb 2019 21:14:37 -0800
parents faa49a5914bb
children 4764e8436b2a
comparison
equal deleted inserted replaced
41612:106b0bec162a 41613:a8ccd821b7d2
741 if fcd.isabsent(): 741 if fcd.isabsent():
742 return None 742 return None
743 # TODO: Break this import cycle somehow. (filectx -> ctx -> fileset -> 743 # TODO: Break this import cycle somehow. (filectx -> ctx -> fileset ->
744 # merge -> filemerge). (I suspect the fileset import is the weakest link) 744 # merge -> filemerge). (I suspect the fileset import is the weakest link)
745 from . import context 745 from . import context
746 a = _workingpath(repo, fcd) 746 back = scmutil.backuppath(ui, repo, fcd.path())
747 back = scmutil.origpath(ui, repo, a)
748 inworkingdir = (back.startswith(repo.wvfs.base) and not 747 inworkingdir = (back.startswith(repo.wvfs.base) and not
749 back.startswith(repo.vfs.base)) 748 back.startswith(repo.vfs.base))
750 if isinstance(fcd, context.overlayworkingfilectx) and inworkingdir: 749 if isinstance(fcd, context.overlayworkingfilectx) and inworkingdir:
751 # If the backup file is to be in the working directory, and we're 750 # If the backup file is to be in the working directory, and we're
752 # merging in-memory, we must redirect the backup to the memory context 751 # merging in-memory, we must redirect the backup to the memory context
762 # in-memory so we can use the fast path of ``util.copy`` if both are 761 # in-memory so we can use the fast path of ``util.copy`` if both are
763 # on disk. 762 # on disk.
764 if isinstance(fcd, context.overlayworkingfilectx): 763 if isinstance(fcd, context.overlayworkingfilectx):
765 util.writefile(back, fcd.data()) 764 util.writefile(back, fcd.data())
766 else: 765 else:
766 a = _workingpath(repo, fcd)
767 util.copyfile(a, back) 767 util.copyfile(a, back)
768 # A arbitraryfilectx is returned, so we can run the same functions on 768 # A arbitraryfilectx is returned, so we can run the same functions on
769 # the backup context regardless of where it lives. 769 # the backup context regardless of where it lives.
770 return context.arbitraryfilectx(back, repo=repo) 770 return context.arbitraryfilectx(back, repo=repo)
771 771