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() |