Mercurial > public > mercurial-scm > hg-stable
diff mercurial/repair.py @ 11197:4bb4895e1693
strip: be quiet about temporary internal bundle
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Wed, 19 May 2010 19:46:39 -0500 |
parents | a685011ed38e |
children | 12e5149cafca |
line wrap: on
line diff
--- a/mercurial/repair.py Wed May 19 22:32:40 2010 +0200 +++ b/mercurial/repair.py Wed May 19 19:46:39 2010 -0500 @@ -18,7 +18,6 @@ if not os.path.isdir(backupdir): os.mkdir(backupdir) name = os.path.join(backupdir, "%s-%s" % (short(node), suffix)) - repo.ui.warn(_("saving bundle to %s\n") % name) return changegroup.writebundle(cg, name, "HG10BZ") def _collectfiles(repo, striprev): @@ -106,8 +105,10 @@ extranodes = _collectextranodes(repo, files, striprev) # create a changegroup for all the branches we need to keep + backupfile = None if backup == "all": - _bundle(repo, [node], cl.heads(), node, 'backup') + backupfile = _bundle(repo, [node], cl.heads(), node, 'backup') + repo.ui.status(_("saving bundle to %s\n") % backupfile) if saveheads or extranodes: chgrpfile = _bundle(repo, savebases, saveheads, node, 'temp', extranodes) @@ -117,29 +118,37 @@ tr = repo.transaction("strip") offset = len(tr.entries) - tr.startgroup() - cl.strip(striprev, tr) - mfst.strip(striprev, tr) - for fn in files: - repo.file(fn).strip(striprev, tr) - tr.endgroup() + try: + tr.startgroup() + cl.strip(striprev, tr) + mfst.strip(striprev, tr) + for fn in files: + repo.file(fn).strip(striprev, tr) + tr.endgroup() - try: - for i in xrange(offset, len(tr.entries)): - file, troffset, ignore = tr.entries[i] - repo.sopener(file, 'a').truncate(troffset) - tr.close() + try: + for i in xrange(offset, len(tr.entries)): + file, troffset, ignore = tr.entries[i] + repo.sopener(file, 'a').truncate(troffset) + tr.close() + except: + tr.abort() + raise + + if saveheads or extranodes: + ui.status(_("adding branch\n")) + f = open(chgrpfile, "rb") + gen = changegroup.readbundle(f, chgrpfile) + repo.addchangegroup(gen, 'strip', 'bundle:' + chgrpfile, True) + f.close() + if backup != "strip": + os.unlink(chgrpfile) except: - tr.abort() + if backupfile: + ui.warn("strip failed, full bundle stored in '%s'\n" % backupfile) + elif saveheads: + ui.warn("strip failed, partial bundle stored in '%s'\n" + % chgrpfile) raise - if saveheads or extranodes: - ui.status(_("adding branch\n")) - f = open(chgrpfile, "rb") - gen = changegroup.readbundle(f, chgrpfile) - repo.addchangegroup(gen, 'strip', 'bundle:' + chgrpfile, True) - f.close() - if backup != "strip": - os.unlink(chgrpfile) - repo.destroyed()