Mercurial > hg
comparison mercurial/bundle2.py @ 26587:56b2bcea2529
error: get Abort from 'error' instead of 'util'
The home of 'Abort' is 'error' not 'util' however, a lot of code seems to be
confused about that and gives all the credit to 'util' instead of the
hardworking 'error'. In a spirit of equity, we break the cycle of injustice and
give back to 'error' the respect it deserves. And screw that 'util' poser.
For great justice.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Thu, 08 Oct 2015 12:55:45 -0700 |
parents | ee1bcb9aa6e4 |
children | ea390d889d3a |
comparison
equal
deleted
inserted
replaced
26586:d51c658d3f04 | 26587:56b2bcea2529 |
---|---|
625 """return a valid unbundler object for a given magicstring""" | 625 """return a valid unbundler object for a given magicstring""" |
626 if magicstring is None: | 626 if magicstring is None: |
627 magicstring = changegroup.readexactly(fp, 4) | 627 magicstring = changegroup.readexactly(fp, 4) |
628 magic, version = magicstring[0:2], magicstring[2:4] | 628 magic, version = magicstring[0:2], magicstring[2:4] |
629 if magic != 'HG': | 629 if magic != 'HG': |
630 raise util.Abort(_('not a Mercurial bundle')) | 630 raise error.Abort(_('not a Mercurial bundle')) |
631 unbundlerclass = formatmap.get(version) | 631 unbundlerclass = formatmap.get(version) |
632 if unbundlerclass is None: | 632 if unbundlerclass is None: |
633 raise util.Abort(_('unknown bundle version %s') % version) | 633 raise error.Abort(_('unknown bundle version %s') % version) |
634 unbundler = unbundlerclass(ui, fp) | 634 unbundler = unbundlerclass(ui, fp) |
635 indebug(ui, 'start processing of %s stream' % magicstring) | 635 indebug(ui, 'start processing of %s stream' % magicstring) |
636 return unbundler | 636 return unbundler |
637 | 637 |
638 class unbundle20(unpackermixin): | 638 class unbundle20(unpackermixin): |
1204 if self._pos != newpos: | 1204 if self._pos != newpos: |
1205 chunk, internaloffset = self._findchunk(newpos) | 1205 chunk, internaloffset = self._findchunk(newpos) |
1206 self._payloadstream = util.chunkbuffer(self._payloadchunks(chunk)) | 1206 self._payloadstream = util.chunkbuffer(self._payloadchunks(chunk)) |
1207 adjust = self.read(internaloffset) | 1207 adjust = self.read(internaloffset) |
1208 if len(adjust) != internaloffset: | 1208 if len(adjust) != internaloffset: |
1209 raise util.Abort(_('Seek failed\n')) | 1209 raise error.Abort(_('Seek failed\n')) |
1210 self._pos = newpos | 1210 self._pos = newpos |
1211 | 1211 |
1212 # These are only the static capabilities. | 1212 # These are only the static capabilities. |
1213 # Check the 'getrepocaps' function for the rest. | 1213 # Check the 'getrepocaps' function for the rest. |
1214 capabilities = {'HG20': (), | 1214 capabilities = {'HG20': (), |
1302 When multiple digest types are given, all of them are checked. | 1302 When multiple digest types are given, all of them are checked. |
1303 """ | 1303 """ |
1304 try: | 1304 try: |
1305 raw_url = inpart.params['url'] | 1305 raw_url = inpart.params['url'] |
1306 except KeyError: | 1306 except KeyError: |
1307 raise util.Abort(_('remote-changegroup: missing "%s" param') % 'url') | 1307 raise error.Abort(_('remote-changegroup: missing "%s" param') % 'url') |
1308 parsed_url = util.url(raw_url) | 1308 parsed_url = util.url(raw_url) |
1309 if parsed_url.scheme not in capabilities['remote-changegroup']: | 1309 if parsed_url.scheme not in capabilities['remote-changegroup']: |
1310 raise util.Abort(_('remote-changegroup does not support %s urls') % | 1310 raise error.Abort(_('remote-changegroup does not support %s urls') % |
1311 parsed_url.scheme) | 1311 parsed_url.scheme) |
1312 | 1312 |
1313 try: | 1313 try: |
1314 size = int(inpart.params['size']) | 1314 size = int(inpart.params['size']) |
1315 except ValueError: | 1315 except ValueError: |
1316 raise util.Abort(_('remote-changegroup: invalid value for param "%s"') | 1316 raise error.Abort(_('remote-changegroup: invalid value for param "%s"') |
1317 % 'size') | 1317 % 'size') |
1318 except KeyError: | 1318 except KeyError: |
1319 raise util.Abort(_('remote-changegroup: missing "%s" param') % 'size') | 1319 raise error.Abort(_('remote-changegroup: missing "%s" param') % 'size') |
1320 | 1320 |
1321 digests = {} | 1321 digests = {} |
1322 for typ in inpart.params.get('digests', '').split(): | 1322 for typ in inpart.params.get('digests', '').split(): |
1323 param = 'digest:%s' % typ | 1323 param = 'digest:%s' % typ |
1324 try: | 1324 try: |
1325 value = inpart.params[param] | 1325 value = inpart.params[param] |
1326 except KeyError: | 1326 except KeyError: |
1327 raise util.Abort(_('remote-changegroup: missing "%s" param') % | 1327 raise error.Abort(_('remote-changegroup: missing "%s" param') % |
1328 param) | 1328 param) |
1329 digests[typ] = value | 1329 digests[typ] = value |
1330 | 1330 |
1331 real_part = util.digestchecker(url.open(op.ui, raw_url), size, digests) | 1331 real_part = util.digestchecker(url.open(op.ui, raw_url), size, digests) |
1332 | 1332 |
1337 # for the whole processing scope. | 1337 # for the whole processing scope. |
1338 op.gettransaction() | 1338 op.gettransaction() |
1339 from . import exchange | 1339 from . import exchange |
1340 cg = exchange.readbundle(op.repo.ui, real_part, raw_url) | 1340 cg = exchange.readbundle(op.repo.ui, real_part, raw_url) |
1341 if not isinstance(cg, changegroup.cg1unpacker): | 1341 if not isinstance(cg, changegroup.cg1unpacker): |
1342 raise util.Abort(_('%s: not a bundle version 1.0') % | 1342 raise error.Abort(_('%s: not a bundle version 1.0') % |
1343 util.hidepassword(raw_url)) | 1343 util.hidepassword(raw_url)) |
1344 ret = changegroup.addchangegroup(op.repo, cg, 'bundle2', 'bundle2') | 1344 ret = changegroup.addchangegroup(op.repo, cg, 'bundle2', 'bundle2') |
1345 op.records.add('changegroup', {'return': ret}) | 1345 op.records.add('changegroup', {'return': ret}) |
1346 if op.reply is not None: | 1346 if op.reply is not None: |
1347 # This is definitely not the final form of this | 1347 # This is definitely not the final form of this |
1349 part = op.reply.newpart('reply:changegroup') | 1349 part = op.reply.newpart('reply:changegroup') |
1350 part.addparam('in-reply-to', str(inpart.id), mandatory=False) | 1350 part.addparam('in-reply-to', str(inpart.id), mandatory=False) |
1351 part.addparam('return', '%i' % ret, mandatory=False) | 1351 part.addparam('return', '%i' % ret, mandatory=False) |
1352 try: | 1352 try: |
1353 real_part.validate() | 1353 real_part.validate() |
1354 except util.Abort as e: | 1354 except error.Abort as e: |
1355 raise util.Abort(_('bundle at %s is corrupted:\n%s') % | 1355 raise error.Abort(_('bundle at %s is corrupted:\n%s') % |
1356 (util.hidepassword(raw_url), str(e))) | 1356 (util.hidepassword(raw_url), str(e))) |
1357 assert not inpart.read() | 1357 assert not inpart.read() |
1358 | 1358 |
1359 @parthandler('reply:changegroup', ('return', 'in-reply-to')) | 1359 @parthandler('reply:changegroup', ('return', 'in-reply-to')) |
1360 def handlereplychangegroup(op, inpart): | 1360 def handlereplychangegroup(op, inpart): |
1397 op.reply = bundle20(op.ui, caps) | 1397 op.reply = bundle20(op.ui, caps) |
1398 | 1398 |
1399 @parthandler('error:abort', ('message', 'hint')) | 1399 @parthandler('error:abort', ('message', 'hint')) |
1400 def handleerrorabort(op, inpart): | 1400 def handleerrorabort(op, inpart): |
1401 """Used to transmit abort error over the wire""" | 1401 """Used to transmit abort error over the wire""" |
1402 raise util.Abort(inpart.params['message'], hint=inpart.params.get('hint')) | 1402 raise error.Abort(inpart.params['message'], hint=inpart.params.get('hint')) |
1403 | 1403 |
1404 @parthandler('error:pushkey', ('namespace', 'key', 'new', 'old', 'ret', | 1404 @parthandler('error:pushkey', ('namespace', 'key', 'new', 'old', 'ret', |
1405 'in-reply-to')) | 1405 'in-reply-to')) |
1406 def handleerrorpushkey(op, inpart): | 1406 def handleerrorpushkey(op, inpart): |
1407 """Used to transmit failure of a mandatory pushkey over the wire""" | 1407 """Used to transmit failure of a mandatory pushkey over the wire""" |