diff mercurial/localrepo.py @ 38128:1cba497491be

narrow: only wrap dirstate functions once, instead of per-reposetup chg will call reposetup multiple times, and we would end up double-wrapping (or worse) the dirstate functions; this can cause issues like OSError 'No such file or directory' during rebase operations, when we go to double-delete our narrowspec backup file. Differential Revision: https://phab.mercurial-scm.org/D3559
author Kyle Lippincott <spectral@google.com>
date Wed, 16 May 2018 14:59:32 -0700
parents 6e2259847f5f
children 2b8cb0ab231c
line wrap: on
line diff
--- a/mercurial/localrepo.py	Tue May 22 00:25:18 2018 +0530
+++ b/mercurial/localrepo.py	Wed May 16 14:59:32 2018 -0700
@@ -778,6 +778,9 @@
 
     @repofilecache('dirstate')
     def dirstate(self):
+        return self._makedirstate()
+
+    def _makedirstate(self):
         sparsematchfn = lambda: sparse.matcher(self)
 
         return dirstate.dirstate(self.vfs, self.ui, self.root,