Mercurial > hg
view hgext/strip.py @ 19824:237e40b2c1ff
strip: move checklocalchanges from mq to strip
One more step for issue3824.
author | Pierre-Yves David <pierre-yves.david@ens-lyon.org> |
---|---|
date | Thu, 26 Sep 2013 23:32:52 +0200 |
parents | 6fb14d21fe9d |
children | 4b4997068143 |
line wrap: on
line source
from mercurial.i18n import _ from mercurial import cmdutil, util cmdtable = {} command = cmdutil.command(cmdtable) testedwith = 'internal' def checksubstate(repo, baserev=None): '''return list of subrepos at a different revision than substate. Abort if any subrepos have uncommitted changes.''' inclsubs = [] wctx = repo[None] if baserev: bctx = repo[baserev] else: bctx = wctx.parents()[0] for s in sorted(wctx.substate): if wctx.sub(s).dirty(True): raise util.Abort( _("uncommitted changes in subrepository %s") % s) elif s not in bctx.substate or bctx.sub(s).dirty(): inclsubs.append(s) return inclsubs def checklocalchanges(repo, force=False, excsuffix=''): cmdutil.checkunfinished(repo) m, a, r, d = repo.status()[:4] if not force: if (m or a or r or d): _("local changes found") # i18n tool detection raise util.Abort(_("local changes found" + excsuffix)) if checksubstate(repo): _("local changed subrepos found") # i18n tool detection raise util.Abort(_("local changed subrepos found" + excsuffix)) return m, a, r, d