diff -r 697289c5d415 -r cd6f10dccf16 mercurial/cmdutil.py --- a/mercurial/cmdutil.py Tue Oct 11 21:10:03 2011 -0400 +++ b/mercurial/cmdutil.py Tue Oct 11 18:18:15 2011 -0700 @@ -75,6 +75,10 @@ modified, added, removed, deleted = repo.status()[:4] if modified or added or removed or deleted: raise util.Abort(_("outstanding uncommitted changes")) + ctx = repo[None] + for s in ctx.substate: + if ctx.sub(s).dirty(): + raise util.Abort(_("uncommitted changes in subrepo %s") % s) def logmessage(ui, opts): """ get the log message according to -m and -l option """