mercurial/sshserver.py
changeset 9742 0c84afa1d622
parent 9713 d193cc97c4e8
child 10263 25e572394f5c
equal deleted inserted replaced
9741:245689e7f869 9742:0c84afa1d622
   179             return
   179             return
   180 
   180 
   181         self.respond('')
   181         self.respond('')
   182 
   182 
   183         # write bundle data to temporary file because it can be big
   183         # write bundle data to temporary file because it can be big
   184         tempname = fp = None
   184         fd, tempname = tempfile.mkstemp(prefix='hg-unbundle-')
   185         try:
   185         fp = os.fdopen(fd, 'wb+')
   186             fd, tempname = tempfile.mkstemp(prefix='hg-unbundle-')
   186         try:
   187             fp = os.fdopen(fd, 'wb+')
       
   188 
       
   189             count = int(self.fin.readline())
   187             count = int(self.fin.readline())
   190             while count:
   188             while count:
   191                 fp.write(self.fin.read(count))
   189                 fp.write(self.fin.read(count))
   192                 count = int(self.fin.readline())
   190                 count = int(self.fin.readline())
   193 
   191 
   210             finally:
   208             finally:
   211                 if not was_locked:
   209                 if not was_locked:
   212                     self.lock.release()
   210                     self.lock.release()
   213                     self.lock = None
   211                     self.lock = None
   214         finally:
   212         finally:
   215             if fp is not None:
   213             fp.close()
   216                 fp.close()
   214             os.unlink(tempname)
   217             if tempname is not None:
       
   218                 os.unlink(tempname)
       
   219 
   215 
   220     def do_stream_out(self):
   216     def do_stream_out(self):
   221         try:
   217         try:
   222             for chunk in streamclone.stream_out(self.repo):
   218             for chunk in streamclone.stream_out(self.repo):
   223                 self.fout.write(chunk)
   219                 self.fout.write(chunk)