runtests-cmdline: all
@echo "Testing \"$@\" in Makefile:"
- ./bup split <testfile1 >tags1
- ./bup split <testfile2 >tags2
+ ./bup split -b <testfile1 >tags1
+ ./bup split -b <testfile2 >tags2
diff -u tags1 tags2 || true
wc -c testfile1 testfile2
wc -l tags1 tags2
optspec = """
bup split [-t] <filename
--
-t,tree output a tree instead of a series of blobs
-c,commit output a commit instead of a tree or blobs
+b,blobs output a series of blob ids
+t,tree output a tree id
+c,commit output a commit id
n,name= name of backup set to update (if any)
bench print benchmark timings to stderr
"""
-(opt, flags, extra) = options.Options('bup split', optspec).parse(sys.argv[1:])
+o = options.Options('bup split', optspec)
+(opt, flags, extra) = o.parse(sys.argv[1:])
+
+if not (opt.blobs or opt.tree or opt.commit or opt.name):
+ log("bup split: use one or more of -b, -t, -c, -n\n")
+ o.usage()
+
start_time = time.time()
shalist = []
ofs = 0
for (ofs, size, sha) in hashsplit_iter(sys.stdin):
#log('SPLIT @ %-8d size=%-8d\n' % (ofs, size))
- if not opt.tree and not opt.commit:
+ if opt.blobs:
print sha
shalist.append(('100644', '%016x.bupchunk' % ofs, sha))
-if opt.tree or opt.commit:
- tree = git.gen_tree(shalist)
-if opt.commit:
+tree = git.gen_tree(shalist)
+if opt.tree:
+ print tree
+if opt.commit or opt.name:
msg = 'Generated by command:\n%r' % sys.argv
ref = opt.name and ('refs/heads/%s' % opt.name) or None
commit = git.gen_commit_easy(ref, tree, msg)
- print commit
-elif opt.tree:
- print tree
+ if opt.commit:
+ print commit
secs = time.time() - start_time
if opt.bench: