Mercurial > public > mercurial-scm > hg-stable
diff hgext/strip.py @ 19825:4b4997068143
strip: move the strip helper function for mq to strip
The next patch finally move the command. No joke! (hey, this is for issue3824)
author | Pierre-Yves David <pierre-yves.david@ens-lyon.org> |
---|---|
date | Thu, 26 Sep 2013 23:43:00 +0200 |
parents | 237e40b2c1ff |
children | 4b1cbcfdabf7 |
line wrap: on
line diff
--- a/hgext/strip.py Thu Sep 26 23:32:52 2013 +0200 +++ b/hgext/strip.py Thu Sep 26 23:43:00 2013 +0200 @@ -1,5 +1,8 @@ from mercurial.i18n import _ -from mercurial import cmdutil, util +from mercurial import cmdutil, hg, util +from mercurial.node import nullid +from mercurial.lock import release +from mercurial import repair cmdtable = {} command = cmdutil.command(cmdtable) @@ -34,3 +37,21 @@ raise util.Abort(_("local changed subrepos found" + excsuffix)) return m, a, r, d +def strip(ui, repo, revs, update=True, backup="all", force=None): + wlock = lock = None + try: + wlock = repo.wlock() + lock = repo.lock() + + if update: + checklocalchanges(repo, force=force) + urev, p2 = repo.changelog.parents(revs[0]) + if p2 != nullid and p2 in [x.node for x in repo.mq.applied]: + urev = p2 + hg.clean(repo, urev) + repo.dirstate.write() + + repair.strip(ui, repo, revs, backup) + finally: + release(lock, wlock) +