]> arthur.barton.de Git - bup.git/blobdiff - lib/bup/rm.py
merge_into: accommodate python 3
[bup.git] / lib / bup / rm.py
index 23423e951d271b499cdf699b42ece88099d76320..e43abc5b7e1de1ac3b08e892dea71e35e6961447 100644 (file)
@@ -1,8 +1,10 @@
 
+from __future__ import absolute_import
 import sys
 
-from bup import git, vfs
+from bup import compat, git, vfs
 from bup.client import ClientError
+from bup.compat import hexstr
 from bup.git import get_commit_items
 from bup.helpers import add_error, die_if_errors, log, saved_errors
 
@@ -67,7 +69,7 @@ def dead_items(repo, paths):
     # Scan for bad requests, and opportunities to optimize
     for path in paths:
         try:
-            resolved = vfs.lresolve(repo, path)
+            resolved = vfs.resolve(repo, path, follow=False)
         except vfs.IOError as e:
             add_error(e)
             continue
@@ -103,7 +105,7 @@ def bup_rm(repo, paths, compression=6, verbosity=None):
 
     updated_refs = {}  # ref_name -> (original_ref, tip_commit(bin))
 
-    for branchname, branchitem in dead_branches.iteritems():
+    for branchname, branchitem in compat.items(dead_branches):
         ref = 'refs/heads/' + branchname
         assert(not ref in updated_refs)
         updated_refs[ref] = (branchitem.oid, None)
@@ -111,7 +113,7 @@ def bup_rm(repo, paths, compression=6, verbosity=None):
     if dead_saves:
         writer = git.PackWriter(compression_level=compression)
         try:
-            for branch, saves in dead_saves.iteritems():
+            for branch, saves in compat.items(dead_saves):
                 assert(saves)
                 updated_refs['refs/heads/' + branch] = rm_saves(saves, writer)
         except:
@@ -126,7 +128,7 @@ def bup_rm(repo, paths, compression=6, verbosity=None):
     # Only update the refs here, at the very end, so that if something
     # goes wrong above, the old refs will be undisturbed.  Make an attempt
     # to update each ref.
-    for ref_name, info in updated_refs.iteritems():
+    for ref_name, info in compat.items(updated_refs):
         orig_ref, new_ref = info
         try:
             if not new_ref:
@@ -134,17 +136,17 @@ def bup_rm(repo, paths, compression=6, verbosity=None):
             else:
                 git.update_ref(ref_name, new_ref, orig_ref)
                 if verbosity:
-                    new_hex = new_ref.encode('hex')
-                    if orig_ref:
-                        orig_hex = orig_ref.encode('hex')
-                        log('updated %r (%s -> %s)\n'
-                            % (ref_name, orig_hex, new_hex))
-                    else:
-                        log('updated %r (%s)\n' % (ref_name, new_hex))
+                    log('updated %r (%s%s)\n'
+                        % (ref_name,
+                           hexstr(orig_ref) + ' -> ' if orig_ref else '',
+                           hexstr(new_ref)))
         except (git.GitError, ClientError) as ex:
             if new_ref:
-                add_error('while trying to update %r (%s -> %s): %s'
-                          % (ref_name, orig_ref, new_ref, ex))
+                add_error('while trying to update %r (%s%s): %s'
+                          % (ref_name,
+                             hexstr(orig_ref) + ' -> ' if orig_ref else '',
+                             hexstr(new_ref),
+                             ex))
             else:
                 add_error('while trying to delete %r (%s): %s'
-                          % (ref_name, orig_ref, ex))
+                          % (ref_name, hexstr(orig_ref), ex))