D5853: revert: migrate to scmutil.backuppath()

martinvonz (Martin von Zweigbergk) phabricator at mercurial-scm.org
Tue Feb 5 17:53:27 UTC 2019


martinvonz created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D5853

AFFECTED FILES
  mercurial/cmdutil.py

CHANGE DETAILS

diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py
--- a/mercurial/cmdutil.py
+++ b/mercurial/cmdutil.py
@@ -2999,8 +2999,6 @@
             )
 
         for abs, (rel, exact) in sorted(names.items()):
-            # target file to be touch on disk (relative to cwd)
-            target = repo.wjoin(abs)
             # search the entry in the dispatch table.
             # if the file is in any of these sets, it was touched in the working
             # directory parent and we are sure it needs to be reverted.
@@ -3015,14 +3013,15 @@
                         if dobackup == backupinteractive:
                             tobackup.add(abs)
                         elif (backup <= dobackup or wctx[abs].cmp(ctx[abs])):
-                            bakname = scmutil.origpath(ui, repo, rel)
+                            bakname = scmutil.backuppath(ui, repo, abs)
                             ui.note(_('saving current version of %s as %s\n') %
                                     (rel, bakname))
                             if not opts.get('dry_run'):
+                                target = repo.wjoin(abs)
                                 if interactive:
-                                    util.copyfile(target, bakname)
+                                    util.copyfile(target, repo.wjoin(bakname))
                                 else:
-                                    util.rename(target, bakname)
+                                    util.rename(target, repo.wjoin(bakname))
                     if opts.get('dry_run'):
                         if ui.verbose or not exact:
                             ui.status(msg % rel)
@@ -3165,8 +3164,8 @@
                 # Create a backup file only if this hunk should be backed up
                 if c.header.filename() in tobackup:
                     target = repo.wjoin(abs)
-                    bakname = scmutil.origpath(repo.ui, repo, m.rel(abs))
-                    util.copyfile(target, bakname)
+                    bakname = scmutil.backuppath(repo.ui, repo, abs)
+                    util.copyfile(target, repo.wjoin(bakname))
                     tobackup.remove(abs)
             c.write(fp)
         dopatch = fp.tell()



To: martinvonz, #hg-reviewers
Cc: mercurial-devel


More information about the Mercurial-devel mailing list