+from __future__ import absolute_import
import sys
-from bup import git
-from bup import vfs2 as 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
# 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
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)
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:
# 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:
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))