mercurial/localrepo.py
changeset 3550 eda9e7c9300d
parent 3510 9383af6f236d
child 3568 23f7d9621783
equal deleted inserted replaced
3549:db946221a58a 3550:eda9e7c9300d
  1781         return newheads - oldheads + 1
  1781         return newheads - oldheads + 1
  1782 
  1782 
  1783 
  1783 
  1784     def stream_in(self, remote):
  1784     def stream_in(self, remote):
  1785         fp = remote.stream_out()
  1785         fp = remote.stream_out()
  1786         resp = int(fp.readline())
  1786         l = fp.readline()
       
  1787         try:
       
  1788             resp = int(l)
       
  1789         except ValueError:
       
  1790             raise util.UnexpectedOutput(
       
  1791                 _('Unexpected response from remote server:'), l)
  1787         if resp != 0:
  1792         if resp != 0:
  1788             raise util.Abort(_('operation forbidden by server'))
  1793             raise util.Abort(_('operation forbidden by server'))
  1789         self.ui.status(_('streaming all changes\n'))
  1794         self.ui.status(_('streaming all changes\n'))
  1790         total_files, total_bytes = map(int, fp.readline().split(' ', 1))
  1795         l = fp.readline()
       
  1796         try:
       
  1797             total_files, total_bytes = map(int, l.split(' ', 1))
       
  1798         except ValueError, TypeError:
       
  1799             raise util.UnexpectedOutput(
       
  1800                 _('Unexpected response from remote server:'), l)
  1791         self.ui.status(_('%d files to transfer, %s of data\n') %
  1801         self.ui.status(_('%d files to transfer, %s of data\n') %
  1792                        (total_files, util.bytecount(total_bytes)))
  1802                        (total_files, util.bytecount(total_bytes)))
  1793         start = time.time()
  1803         start = time.time()
  1794         for i in xrange(total_files):
  1804         for i in xrange(total_files):
  1795             name, size = fp.readline().split('\0', 1)
  1805             l = fp.readline()
  1796             size = int(size)
  1806             try:
       
  1807                 name, size = l.split('\0', 1)
       
  1808                 size = int(size)
       
  1809             except ValueError, TypeError:
       
  1810                 raise util.UnexpectedOutput(
       
  1811                     _('Unexpected response from remote server:'), l)
  1797             self.ui.debug('adding %s (%s)\n' % (name, util.bytecount(size)))
  1812             self.ui.debug('adding %s (%s)\n' % (name, util.bytecount(size)))
  1798             ofp = self.sopener(name, 'w')
  1813             ofp = self.sopener(name, 'w')
  1799             for chunk in util.filechunkiter(fp, limit=size):
  1814             for chunk in util.filechunkiter(fp, limit=size):
  1800                 ofp.write(chunk)
  1815                 ofp.write(chunk)
  1801             ofp.close()
  1816             ofp.close()