class Client:
- def __init__(self, remote, create=False, compression_level=1):
+ def __init__(self, remote, create=False):
self._busy = self.conn = None
self.sock = self.p = self.pout = self.pin = None
- self.compression_level = compression_level
is_reverse = os.environ.get('BUP_SERVER_REVERSE')
if is_reverse:
assert(not remote)
self.conn.write('send-index %s\n' % name)
n = struct.unpack('!I', self.conn.read(4))[0]
assert(n)
- f = open(fn + '.tmp', 'w')
- count = 0
- progress('Receiving index from server: %d/%d\r' % (count, n))
- for b in chunkyreader(self.conn, n):
- f.write(b)
- count += len(b)
- qprogress('Receiving index from server: %d/%d\r' % (count, n))
- progress('Receiving index from server: %d/%d, done.\n' % (count, n))
- self.check_ok()
- f.close()
- os.rename(fn + '.tmp', fn)
+ with atomically_replaced_file(fn, 'w') as f:
+ count = 0
+ progress('Receiving index from server: %d/%d\r' % (count, n))
+ for b in chunkyreader(self.conn, n):
+ f.write(b)
+ count += len(b)
+ qprogress('Receiving index from server: %d/%d\r' % (count, n))
+ progress('Receiving index from server: %d/%d, done.\n' % (count, n))
+ self.check_ok()
def _make_objcache(self):
return git.PackIdxList(self.cachedir)
self.conn.write('%s\n' % ob)
return idx
- def new_packwriter(self):
+ def new_packwriter(self, compression_level = 1):
self.check_busy()
def _set_busy():
self._busy = 'receive-objects-v2'
onopen = _set_busy,
onclose = self._not_busy,
ensure_busy = self.ensure_busy,
- compression_level = self.compression_level)
+ compression_level = compression_level)
def read_ref(self, refname):
self.check_busy()
self._packopen = False
self._bwcount = 0
self._bwtime = time.time()
- self.compression_level = compression_level
def _open(self):
if not self._packopen: