diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -1979,7 +1979,7 @@ def graphrevs(repo, nodes, opts): nodes = nodes[:limit] return graphmod.nodes(repo, nodes) -def add(ui, repo, match, dryrun, listsubrepos, prefix, explicitonly): +def add(ui, repo, match, prefix, explicitonly, **opts): join = lambda f: os.path.join(prefix, f) bad = [] oldbad = match.bad @@ -2003,17 +2003,15 @@ def add(ui, repo, match, dryrun, listsub sub = wctx.sub(subpath) try: submatch = matchmod.narrowmatcher(subpath, match) - if listsubrepos: - bad.extend(sub.add(ui, submatch, dryrun, listsubrepos, prefix, - False)) + if opts.get('subrepos'): + bad.extend(sub.add(ui, submatch, prefix, False, **opts)) else: - bad.extend(sub.add(ui, submatch, dryrun, listsubrepos, prefix, - True)) + bad.extend(sub.add(ui, submatch, prefix, True, **opts)) except error.LookupError: ui.status(_("skipping missing subrepository: %s\n") % join(subpath)) - if not dryrun: + if not opts.get('dry_run'): rejected = wctx.add(names, prefix) bad.extend(f for f in rejected if f in match.files()) return bad diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -199,8 +199,7 @@ def add(ui, repo, *pats, **opts): """ m = scmutil.match(repo[None], pats, opts) - rejected = cmdutil.add(ui, repo, m, opts.get('dry_run'), - opts.get('subrepos'), prefix="", explicitonly=False) + rejected = cmdutil.add(ui, repo, m, "", False, **opts) return rejected and 1 or 0 @command('addremove', diff --git a/mercurial/subrepo.py b/mercurial/subrepo.py --- a/mercurial/subrepo.py +++ b/mercurial/subrepo.py @@ -621,9 +621,10 @@ class hgsubrepo(abstractsubrepo): fp.close() @annotatesubrepoerror - def add(self, ui, match, dryrun, listsubrepos, prefix, explicitonly): - return cmdutil.add(ui, self._repo, match, dryrun, listsubrepos, - os.path.join(prefix, self._path), explicitonly) + def add(self, ui, match, prefix, explicitonly, **opts): + return cmdutil.add(ui, self._repo, match, + os.path.join(prefix, self._path), explicitonly, + **opts) def addremove(self, m, prefix, opts, dry_run, similarity): # In the same way as sub directories are processed, once in a subrepo,