D6468: narrowspec: replace one recursion-avoidance hack with another
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Mon Jun 3 17:56:29 UTC 2019
This revision was automatically updated to reflect the committed changes.
Closed by commit rHG4738c292a520: narrowspec: replace one recursion-avoidance hack with another (authored by martinvonz, committed by ).
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D6468?vs=15316&id=15331
REVISION DETAIL
https://phab.mercurial-scm.org/D6468
AFFECTED FILES
mercurial/narrowspec.py
CHANGE DETAILS
diff --git a/mercurial/narrowspec.py b/mercurial/narrowspec.py
--- a/mercurial/narrowspec.py
+++ b/mercurial/narrowspec.py
@@ -262,6 +262,9 @@
mctx=repo['.'], overwrite=False)
def checkworkingcopynarrowspec(repo):
+ # Avoid infinite recursion when updating the working copy
+ if getattr(repo, '_updatingnarrowspec', False):
+ return
storespec = repo.svfs.tryread(FILENAME)
wcspec = repo.vfs.tryread(DIRSTATE_FILENAME)
if wcspec != storespec:
@@ -276,6 +279,7 @@
"""
oldspec = repo.vfs.tryread(DIRSTATE_FILENAME)
newspec = repo.svfs.tryread(FILENAME)
+ repo._updatingnarrowspec = True
oldincludes, oldexcludes = parseconfig(repo.ui, oldspec)
newincludes, newexcludes = parseconfig(repo.ui, newspec)
@@ -305,10 +309,9 @@
for f in clean + trackeddirty:
ds.drop(f)
- repo.narrowpats = newincludes, newexcludes
- repo._narrowmatch = newmatch
pctx = repo['.']
newfiles = [f for f in pctx.manifest().walk(addedmatch) if f not in ds]
for f in newfiles:
ds.normallookup(f)
_writeaddedfiles(repo, pctx, newfiles)
+ repo._updatingnarrowspec = False
To: martinvonz, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list