[PATCH stable] cmdutil: warnings not issued in remove if subrepopath overlaps

Anton Shestakov engored at ya.ru
Fri Jul 22 07:50:53 EDT 2016


22.07.2016, 19:43, "Hannes Oldenburg" <hannes.christian.oldenburg at gmail.com>:
> # HG changeset patch
> # User Hannes Oldenburg hannes.christian.oldenburg at gmail.com
> # Date 1469186982 0
> # Fri Jul 22 11:29:42 2016 +0000
> # Branch stable
> # Node ID 8549f914ebc26442248701789a45feda94d979d7
> # Parent d3df009ab1175a6792549b51ae66486dd98f398b
> cmdutil: warnings not issued in remove if subrepopath overlaps
>
> Previously a subrepository "sub" would cause no warnings to be issued
> for a file "subnot/a" if it is not removed when calling:
>
> hg remove -S "subnot/a"
>
> diff -r d3df009ab117 -r 8549f914ebc2 mercurial/cmdutil.py
> --- a/mercurial/cmdutil.py Wed Jul 20 14:12:45 2016 -0500
> +++ b/mercurial/cmdutil.py Fri Jul 22 11:29:42 2016 +0000
> @@ -2481,7 +2481,7 @@
>      for f in files:
>          def insubrepo():
>              for subpath in wctx.substate:
> - if f.startswith(subpath):
> + if f.startswith(subpath + '/'):
>                      return True
>              return False
>
> diff -r d3df009ab117 -r 8549f914ebc2 tests/test-subrepo.t
> --- a/tests/test-subrepo.t Wed Jul 20 14:12:45 2016 -0500
> +++ b/tests/test-subrepo.t Fri Jul 22 11:29:42 2016 +0000
> @@ -53,6 +53,15 @@
>    7cf8cfea66e410e8e3336508dfeec07b3192de51
>    .hgsub .hgsubstate
>
> +Subrepopath wich overlaps with filepath, does not change warnings in remove()

"which".

> +
> + $ mkdir snot
> + $ touch snot/file
> + $ hg remove -S snot/file
> + not removing snot/file: file is untracked
> + [1]
> + $ rm -r snot
> +
>  Revert subrepo and test subrepo fileset keyword:
>
>    $ echo b > s/a

The rest looks fine to me, but I'm not even using subrepos.


More information about the Mercurial-devel mailing list