changeset 40753:9199548525fc

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.
author Boris Feld <boris.feld@octobus.net>
date Thu, 22 Nov 2018 20:01:28 +0100
parents 65591a513b9c
children 34f15db81cf0
files mercurial/subrepo.py
diffstat 1 files changed, 5 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- 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)