This should repair a branch.
import bzrlib.branch from bzrlib.revision import NULL_REVISION b = bzrlib.branch.Branch.open(argv[1])
def main(): b.lock_read() if not b.repository._fallback_repositories: return raw_r = b.repository.bzrdir.open_repository() raw_r.lock_write() try: revs = raw_r.all_revision_ids() rev_parents = raw_r.get_graph().get_parent_map(revs) needed = set() map(needed.update, rev_parents.itervalues()) needed.discard(NULL_REVISION) needed = set((rev,) for rev in needed) needed = needed - raw_r.inventories.keys() print "Missing inventories: %r" % needed if not needed: return assert raw_r._format.network_name() == b.repository._format.network_name() stream = b.repository.inventories.get_record_stream(needed, 'topological', True) raw_r.start_write_group() try: raw_r.inventories.insert_recort_stream(stream) except: raw_r.abort_write_group() raise else: raw_r.commit_write_group() finally: raw_r.unlock()
main()
This should repair a branch.
import bzrlib.branch branch. Branch. open(argv[ 1])
from bzrlib.revision import NULL_REVISION
b = bzrlib.
def main(): _fallback_ repositories: bzrdir. open_repository () r.lock_ write() revision_ ids() graph() .get_parent_ map(revs) needed. update, rev_parents. itervalues( )) discard( NULL_REVISION) es.keys( ) format. network_ name() == _format. network_ name() inventories. get_record_ stream( needed, r.start_ write_group( )
raw_r. inventories. insert_ recort_ stream( stream)
raw_r. abort_write_ group()
raw_r. commit_ write_group( ) r.unlock( )
b.lock_read()
if not b.repository.
return
raw_r = b.repository.
raw_
try:
revs = raw_r.all_
rev_parents = raw_r.get_
needed = set()
map(
needed.
needed = set((rev,) for rev in needed)
needed = needed - raw_r.inventori
print "Missing inventories: %r" % needed
if not needed:
return
assert raw_r._
b.repository.
stream = b.repository.
'topological', True)
raw_
try:
except:
raise
else:
finally:
raw_
main()