from __future__ import absolute_import
import glob, os, subprocess, sys, tempfile
from bup import bloom, git, midx
-from bup.compat import range
+from bup.compat import hexstr, range
from bup.git import MissingObject, walk_object
from bup.helpers import Nonlocal, log, progress, qprogress
from os.path import basename
def report_live_item(n, total, ref_name, ref_id, item, verbosity):
status = 'scanned %02.2f%%' % (n * 100.0 / total)
- hex_id = ref_id.encode('hex')
+ hex_id = hexstr(ref_id)
dirslash = '/' if item.type == 'tree' else ''
chunk_path = item.chunk_path
stop_at, trees_visited = None, None
if prune_visited_trees:
trees_visited = set()
- stop_at = lambda (x): x.decode('hex') in trees_visited
+ stop_at = lambda x: x.decode('hex') in trees_visited
approx_live_count = 0
for ref_name, ref_id in git.list_refs():
- for item in walk_object(cat_pipe, ref_id.encode('hex'),
+ for item in walk_object(cat_pipe.get, ref_id.encode('hex'),
stop_at=stop_at,
include_data=None):
# FIXME: batch ids
live_objects = find_live_objects(existing_count, cat_pipe,
verbosity=verbosity)
except MissingObject as ex:
- log('bup: missing object %r \n' % ex.oid.encode('hex'))
+ log('bup: missing object %s \n' % hexstr(ex.oid))
sys.exit(1)
try:
# FIXME: just rename midxes and bloom, and restore them at the end if
bloom.clear_bloom(packdir)
if verbosity: log('clearing reflog\n')
expirelog_cmd = ['git', 'reflog', 'expire', '--all', '--expire=all']
- expirelog = subprocess.Popen(expirelog_cmd, preexec_fn = git._gitenv())
+ expirelog = subprocess.Popen(expirelog_cmd, env=git._gitenv())
git._git_wait(' '.join(expirelog_cmd), expirelog)
if verbosity: log('removing unreachable data\n')
sweep(live_objects, existing_count, cat_pipe,