comparison hgext/largefiles/remotestore.py @ 15253:67d010779907

largefiles: improve error reporting - tweak wording of some error messages - use consistent capitalization - always say 'largefile', not 'lfile' - fix I18N problems - only raise Abort for errors the user can do something about
author Greg Ward <greg@gerg.ca>
date Thu, 13 Oct 2011 20:24:29 -0400
parents 6e809bb4f969
children 9e1616307c4c
comparison
equal deleted inserted replaced
15252:6e809bb4f969 15253:67d010779907
48 fd.close() 48 fd.close()
49 49
50 def _getfile(self, tmpfile, filename, hash): 50 def _getfile(self, tmpfile, filename, hash):
51 # quit if the largefile isn't there 51 # quit if the largefile isn't there
52 stat = self._stat(hash) 52 stat = self._stat(hash)
53 if stat: 53 if stat == 1:
54 raise util.Abort(_('remotestore: largefile %s is %s') % 54 raise util.Abort(_('remotestore: largefile %s is invalid') % hash)
55 (hash, stat == 1 and 'invalid' or 'missing')) 55 elif stat == 2:
56 raise util.Abort(_('remotestore: largefile %s is missing') % hash)
56 57
57 try: 58 try:
58 length, infile = self._get(hash) 59 length, infile = self._get(hash)
59 except urllib2.HTTPError, e: 60 except urllib2.HTTPError, e:
60 # 401s get converted to util.Aborts; everything else is fine being 61 # 401s get converted to util.Aborts; everything else is fine being
62 raise basestore.StoreError(filename, hash, self.url, str(e)) 63 raise basestore.StoreError(filename, hash, self.url, str(e))
63 except urllib2.URLError, e: 64 except urllib2.URLError, e:
64 # This usually indicates a connection problem, so don't 65 # This usually indicates a connection problem, so don't
65 # keep trying with the other files... they will probably 66 # keep trying with the other files... they will probably
66 # all fail too. 67 # all fail too.
67 raise util.Abort('%s: %s' % (self.url, str(e.reason))) 68 raise util.Abort('%s: %s' % (self.url, e.reason))
68 except IOError, e: 69 except IOError, e:
69 raise basestore.StoreError(filename, hash, self.url, str(e)) 70 raise basestore.StoreError(filename, hash, self.url, str(e))
70 71
71 # Mercurial does not close its SSH connections after writing a stream 72 # Mercurial does not close its SSH connections after writing a stream
72 if length is not None: 73 if length is not None:
99 self.ui.warn( 100 self.ui.warn(
100 _('changeset %s: %s missing\n') 101 _('changeset %s: %s missing\n')
101 % (cset, filename)) 102 % (cset, filename))
102 return True # failed 103 return True # failed
103 else: 104 else:
104 raise util.Abort(_('check failed, unexpected response' 105 raise RuntimeError('verify failed: unexpected response from '
105 'statlfile: %d') % stat) 106 'statlfile (%r)' % stat)