diff mercurial/subrepo.py @ 42389:ea5ebb8f72bd

subrepo: migrate to scmutil.backuppath() This has a test impact. It seems to me to be for the better. Differential Revision: https://phab.mercurial-scm.org/D5859
author Martin von Zweigbergk <martinvonz@google.com>
date Tue, 05 Feb 2019 09:43:34 -0800
parents 59025c9b3540
children 2c549abc6b85
line wrap: on
line diff
--- a/mercurial/subrepo.py
+++ b/mercurial/subrepo.py
@@ -1824,15 +1824,15 @@
         if not opts.get(r'no_backup'):
             status = self.status(None)
             names = status.modified
-            origvfs = scmutil.getorigvfs(self.ui, self._subparent)
-            if origvfs is None:
-                origvfs = self.wvfs
             for name in names:
-                bakname = scmutil.origpath(self.ui, self._subparent, name)
+                # backuppath() expects a path relative to the parent repo (the
+                # repo that ui.origbackuppath is relative to)
+                parentname = os.path.join(self._path, name)
+                bakname = scmutil.backuppath(self.ui, self._subparent,
+                                             parentname)
                 self.ui.note(_('saving current version of %s as %s\n') %
                         (name, os.path.relpath(bakname)))
-                name = self.wvfs.join(name)
-                origvfs.rename(name, bakname)
+                util.rename(self.wvfs.join(name), bakname)
 
         if not opts.get(r'dry_run'):
             self.get(substate, overwrite=True)