diff --git a/mercurial/context.py b/mercurial/context.py --- a/mercurial/context.py +++ b/mercurial/context.py @@ -1937,12 +1937,13 @@ building a new manifest if self (working directory) is not comparing against its parent (repo['.']). """ - s = self._dirstatestatus(match, listignored, listclean, listunknown) - # Filter out symlinks that, in the case of FAT32 and NTFS filesystems, - # might have accidentally ended up with the entire contents of the file - # they are supposed to be linking to. - s.modified[:] = self._filtersuspectsymlink(s.modified) - if other != self._repo[b'.']: + if other == self._repo[b'.']: + s = self._dirstatestatus(match, listignored, listclean, listunknown) + # Filter out symlinks that, in the case of FAT32 and NTFS filesystems, + # might have accidentally ended up with the entire contents of the file + # they are supposed to be linking to. + s.modified[:] = self._filtersuspectsymlink(s.modified) + else: s = super(workingctx, self)._buildstatus( other, s, match, listignored, listclean, listunknown )