]> arthur.barton.de Git - bup.git/blobdiff - lib/bup/gc.py
compat.hexstr: add and use
[bup.git] / lib / bup / gc.py
index 6f645847d181c494ee762ca41287151bcafa2d9e..abf157ed521192b496f7877af3d74f641b09f5d0 100644 (file)
@@ -2,7 +2,7 @@
 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
@@ -60,7 +60,7 @@ def count_objects(dir, verbosity):
 
 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
 
@@ -102,10 +102,10 @@ def find_live_objects(existing_count, cat_pipe, verbosity=0):
     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
@@ -227,7 +227,7 @@ def bup_gc(threshold=10, compression=1, verbosity=0):
             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
@@ -239,7 +239,7 @@ def bup_gc(threshold=10, compression=1, verbosity=0):
             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,