diff -r 1474f5d84662 -r 4bcabb5ae9b6 hgext/mq.py --- a/hgext/mq.py Mon Jun 17 10:19:41 2019 -0700 +++ b/hgext/mq.py Mon Jun 17 10:53:00 2019 -0700 @@ -144,7 +144,21 @@ stripext = extensions.load(dummyui(), 'strip', '') strip = stripext.strip -checksubstate = stripext.checksubstate + +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.p1() + for s in sorted(wctx.substate): + wctx.sub(s).bailifchanged(True) + if s not in bctx.substate or bctx.sub(s).dirty(): + inclsubs.append(s) + return inclsubs # Patch names looks like unix-file names. # They must be joinable with queue directory and result in the patch path.