diff --git a/main.py b/main.py index 22e6fa42..fda81038 100755 --- a/main.py +++ b/main.py @@ -276,10 +276,17 @@ class _UserAgentHandler(urllib2.BaseHandler): class _BasicAuthHandler(urllib2.HTTPBasicAuthHandler): def http_error_auth_reqed(self, authreq, host, req, headers): try: + old_add_header = req.add_header + def _add_header(name, val): + val = val.replace('\n', '') + old_add_header(name, val) + req.add_header = _add_header return urllib2.AbstractBasicAuthHandler.http_error_auth_reqed( self, authreq, host, req, headers) except: - self.reset_retry_count() + reset = getattr(self, 'reset_retry_count', None) + if reset is not None: + reset() raise def init_http(): diff --git a/project.py b/project.py index 4bc54de9..b61bcacb 100644 --- a/project.py +++ b/project.py @@ -29,6 +29,11 @@ try: except ImportError: import dummy_threading as _threading +try: + from os import SEEK_END +except ImportError: + SEEK_END = 2 + from color import Coloring from git_command import GitCommand from git_config import GitConfig, IsId, GetSchemeFromUrl @@ -1462,7 +1467,7 @@ class Project(object): done = False dest = open(tmpPath, 'a+b') try: - dest.seek(0, os.SEEK_END) + dest.seek(0, SEEK_END) pos = dest.tell() _urllib_lock.acquire() diff --git a/subcmds/sync.py b/subcmds/sync.py index 244a560b..a3d06922 100644 --- a/subcmds/sync.py +++ b/subcmds/sync.py @@ -195,15 +195,11 @@ later is required to fix a server side protocol bug. fetched.add(project.gitdir) pm.update() - except BaseException, e: - # Notify the _Fetch() function about all errors. + except _FetchError: err_event.set() - - # If we got our own _FetchError, we don't want a stack trace. - # However, if we got something else (something in Sync_NetworkHalf?), - # we'd like one (so re-raise after we've set err_event). - if not isinstance(e, _FetchError): - raise + except: + err_event.set() + raise finally: if did_lock: lock.release()