diff -r 4a28cb4df1f8 -r 5b072d4b62f2 mercurial/util.py --- a/mercurial/util.py Mon Jul 25 16:14:02 2011 -0500 +++ b/mercurial/util.py Mon Jul 25 14:59:55 2011 -0500 @@ -75,6 +75,10 @@ def sha1(s): return _fastsha1(s) +_notset = object() +def safehasattr(thing, attr): + return getattr(thing, attr, _notset) is not _notset + def _fastsha1(s): # This function will import sha1 from hashlib or sha (whichever is # available) and overwrite itself with it on the first call.