Mercurial > public > mercurial-scm > hg
diff hgext/mq.py @ 42492:4bcabb5ae9b6
strip: move checksubstate() to mq (its only caller)
Differential Revision: https://phab.mercurial-scm.org/D6536
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Mon, 17 Jun 2019 10:53:00 -0700 |
parents | cf445a212b9c |
children | 51e52a495214 |
line wrap: on
line diff
--- 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.