Mercurial > hg-stable
diff mercurial/repair.py @ 5905:3afbd82a6c82
repair.py: don't use nested functions.
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Sat, 19 Jan 2008 18:01:16 -0200 |
parents | ad5f97e08e1b |
children | f45f7390c1c5 |
line wrap: on
line diff
--- a/mercurial/repair.py Sat Jan 19 18:01:16 2008 -0200 +++ b/mercurial/repair.py Sat Jan 19 18:01:16 2008 -0200 @@ -9,58 +9,58 @@ import changegroup, os from node import * -def strip(ui, repo, node, backup="all"): - def limitheads(cl, stoprev): - """return the list of all revs >= stoprev that have no children""" - seen = {} - heads = [] +def _limitheads(cl, stoprev): + """return the list of all revs >= stoprev that have no children""" + seen = {} + heads = [] - for r in xrange(cl.count() - 1, stoprev - 1, -1): - if r not in seen: - heads.append(r) - for p in cl.parentrevs(r): - seen[p] = 1 - return heads + for r in xrange(cl.count() - 1, stoprev - 1, -1): + if r not in seen: + heads.append(r) + for p in cl.parentrevs(r): + seen[p] = 1 + return heads - def bundle(repo, bases, heads, node, suffix): - """create a bundle with the specified revisions as a backup""" - cg = repo.changegroupsubset(bases, heads, 'strip') - backupdir = repo.join("strip-backup") - 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 _bundle(repo, bases, heads, node, suffix): + """create a bundle with the specified revisions as a backup""" + cg = repo.changegroupsubset(bases, heads, 'strip') + backupdir = repo.join("strip-backup") + 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 collectfilenodes(repo, striprev): - """find out the first node that should be stripped from each filelog""" - mm = repo.changectx(striprev).manifest() - filenodes = {} +def _collectfilenodes(repo, striprev): + """find out the first node that should be stripped from each filelog""" + mm = repo.changectx(striprev).manifest() + filenodes = {} - for x in xrange(striprev, repo.changelog.count()): - for name in repo.changectx(x).files(): - if name in filenodes: - continue - filenodes[name] = mm.get(name) + for x in xrange(striprev, repo.changelog.count()): + for name in repo.changectx(x).files(): + if name in filenodes: + continue + filenodes[name] = mm.get(name) - return filenodes + return filenodes - def stripall(repo, striprev, filenodes): - """strip the requested nodes from the filelogs""" - # we go in two steps here so the strip loop happens in a - # sensible order. When stripping many files, this helps keep - # our disk access patterns under control. +def _stripall(repo, striprev, filenodes): + """strip the requested nodes from the filelogs""" + # we go in two steps here so the strip loop happens in a + # sensible order. When stripping many files, this helps keep + # our disk access patterns under control. - files = filenodes.keys() - files.sort() - for name in files: - f = repo.file(name) - fnode = filenodes[name] - frev = 0 - if fnode is not None and fnode in f.nodemap: - frev = f.rev(fnode) - f.strip(frev, striprev) + files = filenodes.keys() + files.sort() + for name in files: + f = repo.file(name) + fnode = filenodes[name] + frev = 0 + if fnode is not None and fnode in f.nodemap: + frev = f.rev(fnode) + f.strip(frev, striprev) +def strip(ui, repo, node, backup="all"): cl = repo.changelog # TODO delete the undo files, and handle undo of merge sets pp = cl.parents(node) @@ -72,7 +72,7 @@ saveheads = [] savebases = {} - heads = [cl.node(r) for r in limitheads(cl, striprev)] + heads = [cl.node(r) for r in _limitheads(cl, striprev)] seen = {} # search through all the heads, finding those where the revision @@ -104,12 +104,12 @@ # create a changegroup for all the branches we need to keep if backup == "all": - bundle(repo, [node], cl.heads(), node, 'backup') + _bundle(repo, [node], cl.heads(), node, 'backup') if saveheads: - chgrpfile = bundle(repo, savebases.keys(), saveheads, node, 'temp') + chgrpfile = _bundle(repo, savebases.keys(), saveheads, node, 'temp') - filenodes = collectfilenodes(repo, striprev) - stripall(repo, striprev, filenodes) + filenodes = _collectfilenodes(repo, striprev) + _stripall(repo, striprev, filenodes) change = cl.read(node) cl.strip(striprev, striprev)