mercurial/streamclone.py
changeset 9467 4c041f1ee1b4
parent 8761 0289f384e1e5
child 9508 e2fd9b62349b
equal deleted inserted replaced
9466:1214c64c592b 9467:4c041f1ee1b4
    44     total_bytes = 0
    44     total_bytes = 0
    45     try:
    45     try:
    46         # get consistent snapshot of repo, lock during scan
    46         # get consistent snapshot of repo, lock during scan
    47         lock = repo.lock()
    47         lock = repo.lock()
    48         try:
    48         try:
    49             repo.ui.debug(_('scanning\n'))
    49             repo.ui.debug('scanning\n')
    50             for name, ename, size in repo.store.walk():
    50             for name, ename, size in repo.store.walk():
    51                 # for backwards compat, name was partially encoded
    51                 # for backwards compat, name was partially encoded
    52                 entries.append((store.encodedir(name), size))
    52                 entries.append((store.encodedir(name), size))
    53                 total_bytes += size
    53                 total_bytes += size
    54         finally:
    54         finally:
    55             lock.release()
    55             lock.release()
    56     except error.LockError:
    56     except error.LockError:
    57         raise StreamException(2)
    57         raise StreamException(2)
    58 
    58 
    59     yield '0\n'
    59     yield '0\n'
    60     repo.ui.debug(_('%d files, %d bytes to transfer\n') %
    60     repo.ui.debug('%d files, %d bytes to transfer\n' %
    61                   (len(entries), total_bytes))
    61                   (len(entries), total_bytes))
    62     yield '%d %d\n' % (len(entries), total_bytes)
    62     yield '%d %d\n' % (len(entries), total_bytes)
    63     for name, size in entries:
    63     for name, size in entries:
    64         repo.ui.debug(_('sending %s (%d bytes)\n') % (name, size))
    64         repo.ui.debug('sending %s (%d bytes)\n' % (name, size))
    65         yield '%s\0%d\n' % (name, size)
    65         yield '%s\0%d\n' % (name, size)
    66         for chunk in util.filechunkiter(repo.sopener(name), limit=size):
    66         for chunk in util.filechunkiter(repo.sopener(name), limit=size):
    67             yield chunk
    67             yield chunk