[PATCH V2] fileset: add missing() predicate (issue4925)

Pierre-Yves David pierre-yves.david at ens-lyon.org
Thu Nov 19 01:57:49 CST 2015



On 11/18/2015 11:43 PM, liscju wrote:
> # HG changeset patch
> # User liscju <piotr.listkiewicz at gmail.com>
> # Date 1447876532 -3600
> #      Wed Nov 18 20:55:32 2015 +0100
> # Node ID bb36967f45cdd21b816b3fec2f6e20cc24b3121d
> # Parent  2da6a2dbfc42bdec4bcaf47da947c64ff959a59c
> fileset: add missing() predicate (issue4925)
>
> Help of status cmd defines status file of 'missing', what is
> called in fileset 'deleted'. To stay consistent this patch
> introduces missing() predicate which in fact is alias to
> 'deleted'.

Pushed to the clowncopter. Thanks.

> diff -r 2da6a2dbfc42 -r bb36967f45cd mercurial/fileset.py
> --- a/mercurial/fileset.py	Mon Nov 09 17:20:50 2015 -0500
> +++ b/mercurial/fileset.py	Wed Nov 18 20:55:32 2015 +0100
> @@ -159,13 +159,22 @@
>
>   def deleted(mctx, x):
>       """``deleted()``
> -    File that is deleted according to :hg:`status`.
> +    Alias for ``missing()``.
>       """
>       # i18n: "deleted" is a keyword
>       getargs(x, 0, 0, _("deleted takes no arguments"))
>       s = mctx.status().deleted
>       return [f for f in mctx.subset if f in s]
>
> +def missing(mctx, x):
> +    """``missing()``
> +    File that is missing according to :hg:`status`.
> +    """
> +    # i18n: "missing" is a keyword
> +    getargs(x, 0, 0, _("missing takes no arguments"))
> +    s = mctx.status().deleted
> +    return [f for f in mctx.subset if f in s]
> +
>   def unknown(mctx, x):
>       """``unknown()``
>       File that is unknown according to :hg:`status`. These files will only be
> @@ -441,6 +450,7 @@
>       'grep': grep,
>       'ignored': ignored,
>       'hgignore': hgignore,
> +    'missing': missing,
>       'modified': modified,
>       'portable': portable,
>       'removed': removed,
> @@ -511,7 +521,7 @@
>
>       # do we need status info?
>       if (_intree(['modified', 'added', 'removed', 'deleted',
> -                 'unknown', 'ignored', 'clean'], tree) or
> +                 'missing', 'unknown', 'ignored', 'clean'], tree) or
>           # Using matchctx.existing() on a workingctx requires us to check
>           # for deleted files.
>           (ctx.rev() is None and _intree(_existingcallers, tree))):
> diff -r 2da6a2dbfc42 -r bb36967f45cd tests/test-fileset-generated.t
> --- a/tests/test-fileset-generated.t	Mon Nov 09 17:20:50 2015 -0500
> +++ b/tests/test-fileset-generated.t	Wed Nov 18 20:55:32 2015 +0100
> @@ -47,6 +47,13 @@
>     ! missing_content2_missing-tracked
>     ! missing_missing_missing-tracked
>
> +  $ hg st -A 'set:missing()'
> +  ! content1_content1_missing-tracked
> +  ! content1_content2_missing-tracked
> +  ! content1_missing_missing-tracked
> +  ! missing_content2_missing-tracked
> +  ! missing_missing_missing-tracked
> +
>     $ hg st -A 'set:unknown()'
>     ? content1_missing_content1-untracked
>     ? content1_missing_content3-untracked
> diff -r 2da6a2dbfc42 -r bb36967f45cd tests/test-fileset.t
> --- a/tests/test-fileset.t	Mon Nov 09 17:20:50 2015 -0500
> +++ b/tests/test-fileset.t	Wed Nov 18 20:55:32 2015 +0100
> @@ -73,6 +73,8 @@
>     a2
>     $ fileset 'deleted()'
>     a1
> +  $ fileset 'missing()'
> +  a1
>     $ fileset 'unknown()'
>     c3
>     $ fileset 'ignored()'
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> https://selenic.com/mailman/listinfo/mercurial-devel
>

-- 
Pierre-Yves David


More information about the Mercurial-devel mailing list