Mercurial > hg
diff mercurial/util.py @ 15152:94b200a11cf7 stable
http: handle push of bundles > 2 GB again (issue3017)
It was very elegant that httpsendfile implemented __len__ like a string. It was
however also dangerous because that protocol can't handle sizes bigger than 2 GB.
Mercurial tried to work around that, but it turned out to be too easy to
introduce new errors in this area.
With this change __len__ is no longer implemented at all and the code will work
the same way for short and long posts.
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Wed, 21 Sep 2011 22:52:00 +0200 |
parents | 64fbd0de9773 |
children | c208dcd0f709 |
line wrap: on
line diff
--- a/mercurial/util.py Tue Sep 13 17:01:07 2011 -0500 +++ b/mercurial/util.py Wed Sep 21 22:52:00 2011 +0200 @@ -24,6 +24,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.