Mercurial > hg
changeset 11624:67260651d09d
protocol: convert StreamException to generated error code
This makes it much easier to handle these errors at the transport level.
author | Dirkjan Ochtman <dirkjan@ochtman.nl> |
---|---|
date | Fri, 16 Jul 2010 22:20:19 +0200 |
parents | 31d0a6d50ee2 |
children | cdeb861335d5 |
files | mercurial/streamclone.py |
diffstat | 1 files changed, 5 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/streamclone.py Fri Jul 16 22:20:10 2010 +0200 +++ b/mercurial/streamclone.py Fri Jul 16 22:20:19 2010 +0200 @@ -6,16 +6,8 @@ # GNU General Public License version 2 or any later version. import util, error - from mercurial import store -class StreamException(Exception): - def __init__(self, code): - Exception.__init__(self) - self.code = code - def __str__(self): - return '%i\n' % self.code - # if server supports streaming clone, it advertises "stream" # capability with value that is version+flags of repo it is serving. # client only streams if it can read that repo format. @@ -40,7 +32,8 @@ writes to file-like object, must support write() and optional flush().''' if not allowed(repo.ui): - raise StreamException(1) + yield '1\n' # error: 1 + return entries = [] total_bytes = 0 @@ -55,9 +48,10 @@ finally: lock.release() except error.LockError: - raise StreamException(2) + yield '2\n' # error: 2 + return - yield '0\n' + yield '0\n' # success repo.ui.debug('%d files, %d bytes to transfer\n' % (len(entries), total_bytes)) yield '%d %d\n' % (len(entries), total_bytes)