workingctx: add _poststatus method to call _filtersuspectsymlink
With this patch, we are one step closer to removing 'if ... else' logic in
localrepo.status for testing if the context is the working directory or
not. Future patches will replace those blocks of code with a call to the
context's _poststatus hook so that each context object will do the right thing
depending on the situation.
--- a/mercurial/context.py Tue Apr 22 12:51:58 2014 -0500
+++ b/mercurial/context.py Tue Apr 22 12:59:22 2014 -0500
@@ -1294,6 +1294,16 @@
"""
return self._dirstatestatus(match, listignored, listclean, listunknown)
+ def _poststatus(self, other, s, match, listignored, listclean, listunknown):
+ """override the parent hook with a filter for suspect symlinks
+
+ We use this poststatus hook to filter out symlinks that might have
+ accidentally ended up with the entire contents of the file they are
+ susposed to be linking to.
+ """
+ s[0] = self._filtersuspectsymlink(s[0])
+ return s
+
def _dirstatestatus(self, match=None, ignored=False, clean=False,
unknown=False):
'''Gets the status from the dirstate -- internal use only.'''