#log('parts out: %r\n' % parts) #log('stk out: %r\n' % shalists) assert(len(shalists) == 1) tree = w.new_tree(shalists[-1]) if opt.verbose: log('\n') if opt.tree: print tree.encode('hex') if opt.commit or opt.name: msg = 'bup save\n\nGenerated by command:\n%r' % sys.argv ref = opt.name and ('refs/heads/%s' % opt.name) or None commit = w.new_commit(oldref, tree, msg) if opt.commit: if opt.verbose: log('\n') print commit.encode('hex') w.close() # must close before we can update the ref if opt.name: if cli: cli.update_ref(refname, commit, oldref) else: git.update_ref(refname, commit, oldref) if cli: cli.close() if saved_errors: log('WARNING: %d errors encountered while saving.\n' % len(saved_errors))
def update_ref(conn, refname): git.check_repo_or_die() newval = conn.readline().strip() oldval = conn.readline().strip() git.update_ref(refname, newval.decode('hex'), oldval.decode('hex')) conn.ok()