view hgext/strip.py @ 19823:6fb14d21fe9d

strip: move checksubstate 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:12:43 +0200
parents a194a33f8cb2
children 237e40b2c1ff
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