diff -r bd3cb917761a -r 2406dbba49bd mercurial/server.py --- a/mercurial/server.py Fri Mar 31 23:00:41 2017 -0400 +++ b/mercurial/server.py Sat Apr 15 18:05:40 2017 -0400 @@ -15,6 +15,7 @@ from . import ( chgserver, + cmdutil, commandserver, error, hgweb, @@ -130,11 +131,22 @@ baseui = ui webconf = opts.get('web_conf') or opts.get('webdir_conf') if webconf: + if opts.get('subrepos'): + raise error.Abort(_('--web-conf cannot be used with --subrepos')) + # load server settings (e.g. web.port) to "copied" ui, which allows # hgwebdir to reload webconf cleanly servui = ui.copy() servui.readconfig(webconf, sections=['web']) alluis.add(servui) + elif opts.get('subrepos'): + servui = ui + + # If repo is None, hgweb.createapp() already raises a proper abort + # message as long as webconf is None. + if repo: + webconf = dict() + cmdutil.addwebdirpath(repo, "", webconf) else: servui = ui