Mercurial > hg
changeset 24471:1ff35d76421c
subrepo: add bailifchanged to centralize raising Abort if subrepo is dirty
This patch also centralizes composing dirty reason message like
"uncommitted changes in subrepository 'xxxx'".
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Wed, 25 Mar 2015 13:55:35 +0900 |
parents | 76b0b0fed2e3 |
children | 1bf71faf042e |
files | hgext/strip.py mercurial/cmdutil.py mercurial/merge.py mercurial/subrepo.py tests/test-mq-subrepo-svn.t tests/test-mq-subrepo.t tests/test-subrepo.t |
diffstat | 7 files changed, 19 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/strip.py Wed Mar 25 13:55:32 2015 +0900 +++ b/hgext/strip.py Wed Mar 25 13:55:35 2015 +0900 @@ -23,10 +23,8 @@ 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(): + wctx.sub(s).bailifchanged(True) + if s not in bctx.substate or bctx.sub(s).dirty(): inclsubs.append(s) return inclsubs
--- a/mercurial/cmdutil.py Wed Mar 25 13:55:32 2015 +0900 +++ b/mercurial/cmdutil.py Wed Mar 25 13:55:35 2015 +0900 @@ -282,8 +282,7 @@ raise util.Abort(_('uncommitted changes')) ctx = repo[None] for s in sorted(ctx.substate): - if ctx.sub(s).dirty(): - raise util.Abort(_("uncommitted changes in subrepo %s") % s) + ctx.sub(s).bailifchanged() def logmessage(ui, opts): """ get the log message according to -m and -l option """
--- a/mercurial/merge.py Wed Mar 25 13:55:32 2015 +0900 +++ b/mercurial/merge.py Wed Mar 25 13:55:35 2015 +0900 @@ -1045,9 +1045,7 @@ raise util.Abort(_("uncommitted changes"), hint=_("use 'hg status' to list changes")) for s in sorted(wc.substate): - if wc.sub(s).dirty(): - raise util.Abort(_("uncommitted changes in " - "subrepository '%s'") % s) + wc.sub(s).bailifchanged() elif not overwrite: if p1 == p2: # no-op update
--- a/mercurial/subrepo.py Wed Mar 25 13:55:32 2015 +0900 +++ b/mercurial/subrepo.py Wed Mar 25 13:55:35 2015 +0900 @@ -402,6 +402,13 @@ return _("uncommitted changes in subrepository '%s'" ) % subrelpath(self) + def bailifchanged(self, ignoreupdate=False): + """raise Abort if subrepository is ``dirty()`` + """ + dirtyreason = self.dirtyreason(ignoreupdate=ignoreupdate) + if dirtyreason: + raise util.Abort(dirtyreason) + def basestate(self): """current working directory base state, disregarding .hgsubstate state and working directory modifications"""
--- a/tests/test-mq-subrepo-svn.t Wed Mar 25 13:55:32 2015 +0900 +++ b/tests/test-mq-subrepo-svn.t Wed Mar 25 13:55:35 2015 +0900 @@ -50,7 +50,7 @@ $ cd .. $ hg status -S # doesn't show status for svn subrepos (yet) $ hg qnew -m1 1.diff - abort: uncommitted changes in subrepository sub + abort: uncommitted changes in subrepository 'sub' [255] $ cd ..
--- a/tests/test-mq-subrepo.t Wed Mar 25 13:55:32 2015 +0900 +++ b/tests/test-mq-subrepo.t Wed Mar 25 13:55:35 2015 +0900 @@ -102,7 +102,7 @@ A .hgsub A sub/a % qnew -X path:no-effect -m0 0.diff - abort: uncommitted changes in subrepository sub + abort: uncommitted changes in subrepository 'sub' [255] % update substate when adding .hgsub w/clean updated subrepo A .hgsub @@ -117,7 +117,7 @@ M .hgsub A sub2/a % qnew --cwd .. -R repo-2499-qnew -X path:no-effect -m1 1.diff - abort: uncommitted changes in subrepository sub2 + abort: uncommitted changes in subrepository 'sub2' [255] % update substate when modifying .hgsub w/clean updated subrepo M .hgsub @@ -161,7 +161,7 @@ A .hgsub A sub/a % qrefresh - abort: uncommitted changes in subrepository sub + abort: uncommitted changes in subrepository 'sub' [255] % update substate when adding .hgsub w/clean updated subrepo A .hgsub @@ -177,7 +177,7 @@ M .hgsub A sub2/a % qrefresh - abort: uncommitted changes in subrepository sub2 + abort: uncommitted changes in subrepository 'sub2' [255] % update substate when modifying .hgsub w/clean updated subrepo M .hgsub @@ -300,7 +300,7 @@ record this change to '.hgsub'? [Ynesfdaq?] y warning: subrepo spec file .hgsub not found - abort: uncommitted changes in subrepository sub + abort: uncommitted changes in subrepository 'sub' [255] % update substate when adding .hgsub w/clean updated subrepo A .hgsub @@ -335,7 +335,7 @@ +sub2 = sub2 record this change to '.hgsub'? [Ynesfdaq?] y - abort: uncommitted changes in subrepository sub2 + abort: uncommitted changes in subrepository 'sub2' [255] % update substate when modifying .hgsub w/clean updated subrepo M .hgsub