fanout= maximum number of blobs in a single tree
bwlimit= maximum bytes/sec to transmit to server
"""
-o = options.Options('bup split', optspec)
+o = options.Options(optspec)
(opt, flags, extra) = o.parse(sys.argv[1:])
handle_ctrl_c()
date = time.time()
+total_bytes = 0
+def prog(filenum, nbytes):
+ global total_bytes
+ total_bytes += nbytes
+ if filenum > 0:
+ qprogress('Splitting: file #%d, %d kbytes\r'
+ % (filenum+1, total_bytes/1024))
+ else:
+ qprogress('Splitting: %d kbytes\r' % (total_bytes/1024))
+
+
is_reverse = os.environ.get('BUP_SERVER_REVERSE')
if is_reverse and opt.remote:
o.fatal("don't use -r in reverse mode; it's automatic")
start_time = time.time()
+if opt.name and opt.name.startswith('.'):
+ o.fatal("'%s' is not a valid branch name." % opt.name)
refname = opt.name and 'refs/heads/%s' % opt.name or None
if opt.noop or opt.copy:
cli = pack_writer = oldref = None
elif opt.remote or is_reverse:
- if opt.remote and opt.remote.find(":") == -1:
- o.fatal("--remote argument must contain a colon")
- try:
- cli = client.Client(opt.remote)
- except client.ClientError:
- o.fatal("server exited unexpectedly; see errors above")
+ cli = client.Client(opt.remote)
oldref = refname and cli.read_ref(refname) or None
pack_writer = cli.new_packwriter()
else:
if pack_writer:
shalist = hashsplit.split_to_shalist(pack_writer, files,
- keep_boundaries=opt.keep_boundaries)
+ keep_boundaries=opt.keep_boundaries,
+ progress=prog)
tree = pack_writer.new_tree(shalist)
else:
last = 0
for (blob, bits) in hashsplit.hashsplit_iter(files,
- keep_boundaries=opt.keep_boundaries):
+ keep_boundaries=opt.keep_boundaries,
+ progress=prog):
hashsplit.total_split += len(blob)
if opt.copy:
sys.stdout.write(str(blob))