diff --git a/mercurial/dirstate.py b/mercurial/dirstate.py --- a/mercurial/dirstate.py +++ b/mercurial/dirstate.py @@ -252,7 +252,8 @@ class dirstate: if seen(np): continue p = os.path.join(top, f) - st = os.stat(p) + # don't trip over symlinks + st = os.lstat(p) if stat.S_ISDIR(st.st_mode): ds = os.path.join(nd, f +'/') if statmatch(ds, st):