Patchwork D6173: shelve: stop passing list of files to revert

login
register
mail settings
Submitter phabricator
Date March 29, 2019, 6:39 p.m.
Message ID <differential-rev-PHID-DREV-l5n5527ktcdbs7yd4lwo-req@phab.mercurial-scm.org>
Download mbox | patch
Permalink /patch/39412/
State Superseded
Headers show

Comments

phabricator - March 29, 2019, 6:39 p.m.
martinvonz created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  It seems to work just fine to not specify any files here. I suspect it
  looked the way it did for historical reasons. It apparently used to
  use merge instead of rebase until https://phab.mercurial-scm.org/rHG1d7a36ff2615e6e12ce65681db4e07622e7b60d1 (shelve: use rebase
  instead of merge (issue4068), 2013-10-23) and it makes sense to want
  to restrict the set of files then.
  
  I noticed this because of the files.extend(shelvectx.p1().files()). If
  the working copy was clean before, then shelvectx.p1() will be the
  working copy parent and that ended up adding all the files in that
  set. In our Google-internal Mercurial setup (including a FUSE) that
  was very noticeably slow when the working copy parent happened to have
  many files in large directories.
  
  This patch doesn't yet remove the call to shelvectx.p1().files(). We
  also use that set for deciding what to back up. I'm pretty sure it's
  safe to back up only the set of files we already back even if we no
  longer restrict the set of files to revert, so this patch should be
  safe on its own. Regardless, the next patch will delegate the
  backing-up to cmdutil.revert().
  
  Incidentally, this also gets rid of a repo.pathto() that I had earlier
  wanted to get rid of.

REPOSITORY
  rHG Mercurial

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

AFFECTED FILES
  hgext/shelve.py

CHANGE DETAILS




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

Patch

diff --git a/hgext/shelve.py b/hgext/shelve.py
--- a/hgext/shelve.py
+++ b/hgext/shelve.py
@@ -646,10 +646,6 @@ 
         raise error.Abort(_('working directory parents do not match unshelve '
                            'state'))
 
-def pathtofiles(repo, files):
-    cwd = repo.getcwd()
-    return [repo.pathto(f, cwd) for f in files]
-
 def unshelveabort(ui, repo, state, opts):
     """subcommand that abort an in-progress unshelve"""
     with repo.lock():
@@ -689,7 +685,6 @@ 
                             scmutil.backuppath(ui, repo, file))
         ui.pushbuffer(True)
         cmdutil.revert(ui, repo, shelvectx, repo.dirstate.parents(),
-                       *pathtofiles(repo, files),
                        **{r'no_backup': True})
         ui.popbuffer()