subrepo-git: use an official origvfs when appropriate
authorBoris Feld <boris.feld@octobus.net>
Thu, 22 Nov 2018 20:01:28 +0100
changeset 40753 9199548525fc
parent 40752 65591a513b9c
child 40754 34f15db81cf0
subrepo-git: use an official origvfs when appropriate The origvfs has the auditor properly set and can move file without issue. The current code is currently working without errors because rename are not audited, yet.
mercurial/subrepo.py
--- a/mercurial/subrepo.py	Thu Nov 22 19:26:05 2018 +0100
+++ b/mercurial/subrepo.py	Thu Nov 22 20:01:28 2018 +0100
@@ -1810,11 +1810,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)
                 self.ui.note(_('saving current version of %s as %s\n') %
                         (name, bakname))
-                self.wvfs.rename(name, bakname)
+                name = self.wvfs.join(name)
+                origvfs.rename(name, bakname)
 
         if not opts.get(r'dry_run'):
             self.get(substate, overwrite=True)