[PATCH V2] forget: add --dry-run mode

Matt Harbison mharbison72 at gmail.com
Mon Mar 12 18:27:13 EDT 2018


On Sun, 11 Mar 2018 05:49:26 -0400, Sushil khanchi  
<sushilkhanchi97 at gmail.com> wrote:

> # HG changeset patch
> # User Sushil khanchi <sushilkhanchi97 at gmail.com>
> # Date 1520665399 -19800
> #      Sat Mar 10 12:33:19 2018 +0530
> # Node ID a1be8989c0158abc69ebd97ca8a0cc7dc3801be9
> # Parent  4c71a26a4009d88590c9ae3d64a5912fd556d82e
> forget: add --dry-run mode
>
> diff -r 4c71a26a4009 -r a1be8989c015 mercurial/cmdutil.py
> --- a/mercurial/cmdutil.py	Sun Mar 04 21:16:36 2018 -0500
> +++ b/mercurial/cmdutil.py	Sat Mar 10 12:33:19 2018 +0530
> @@ -1996,7 +1996,7 @@
>          for subpath in ctx.substate:
>              ctx.sub(subpath).addwebdirpath(serverpath, webconf)
> -def forget(ui, repo, match, prefix, explicitonly):
> +def forget(ui, repo, match, prefix, explicitonly, **opts):
>      join = lambda f: os.path.join(prefix, f)
>      bad = []
>      badfn = lambda x, y: bad.append(x) or match.bad(x, y)
> @@ -2039,9 +2039,10 @@
>          if ui.verbose or not match.exact(f):
>              ui.status(_('removing %s\n') % match.rel(f))
> -    rejected = wctx.forget(forget, prefix)

Shouldn't --dry-run be passed into wctx.forget() too?  Then the warning  
about bad paths there will be emitted, and you won't have to  
conditionalize the following lines here.  That in turn won't affect the  
exit code.

> -    bad.extend(f for f in rejected if f in match.files())
> -    forgot.extend(f for f in forget if f not in rejected)
> +    if not opts.get(r'dry_run'):
> +        rejected = wctx.forget(forget, prefix)
> +        bad.extend(f for f in rejected if f in match.files())
> +        forgot.extend(f for f in forget if f not in rejected)
>      return bad, forgot
> def files(ui, ctx, m, fm, fmt, subrepos):
> diff -r 4c71a26a4009 -r a1be8989c015 mercurial/commands.py
> --- a/mercurial/commands.py	Sun Mar 04 21:16:36 2018 -0500
> +++ b/mercurial/commands.py	Sat Mar 10 12:33:19 2018 +0530
> @@ -2036,7 +2036,11 @@
>      with ui.formatter('files', opts) as fm:
>          return cmdutil.files(ui, ctx, m, fm, fmt, opts.get('subrepos'))
> - at command('^forget', walkopts, _('[OPTION]... FILE...'), inferrepo=True)
> + at command(
> +    '^forget',
> +    [('', 'dry-run', None, _('only print output'))]
> +    + walkopts,
> +    _('[OPTION]... FILE...'), inferrepo=True)
>  def forget(ui, repo, *pats, **opts):
>      """forget the specified files on the next commit
> @@ -2071,7 +2075,7 @@
>          raise error.Abort(_('no files specified'))
>     m = scmutil.match(repo[None], pats, opts)
> -    rejected = cmdutil.forget(ui, repo, m, prefix="",  
> explicitonly=False)[0]
> +    rejected = cmdutil.forget(ui, repo, m, prefix="",  
> explicitonly=False, **opts)[0]
>      return rejected and 1 or 0
> @command(
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


More information about the Mercurial-devel mailing list