From patchwork Wed Jul 27 08:56:42 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [STABLE] cmdutil: warnings not issued in cat if subrepopath overlaps From: Hannes Oldenburg X-Patchwork-Id: 15988 Message-Id: <1cb0ce20c615d848b7ca.1469609802@localhost.localdomain> To: mercurial-devel@mercurial-scm.org Date: Wed, 27 Jul 2016 08:56:42 +0000 # HG changeset patch # User Hannes Oldenburg # Date 1469608734 0 # Wed Jul 27 08:38:54 2016 +0000 # Branch stable # Node ID 1cb0ce20c615d848b7ca50fb23096cdc27d4b6d1 # Parent 6217180f9ab8c61320ea3826591960415779282e cmdutil: warnings not issued in cat if subrepopath overlaps Previously a subrepository "sub" would cause no warnings to be issued for a file "subnot/a", if it's not present in the corresponding changeset when calling: hg cat subnot/a diff -r 6217180f9ab8 -r 1cb0ce20c615 mercurial/cmdutil.py --- a/mercurial/cmdutil.py Mon Jul 25 12:59:52 2016 +0800 +++ b/mercurial/cmdutil.py Wed Jul 27 08:38:54 2016 +0000 @@ -2584,7 +2584,7 @@ # Don't warn about "missing" files that are really in subrepos def badfn(path, msg): for subpath in ctx.substate: - if path.startswith(subpath): + if path.startswith(subpath + '/'): return matcher.bad(path, msg) diff -r 6217180f9ab8 -r 1cb0ce20c615 tests/test-subrepo.t --- a/tests/test-subrepo.t Mon Jul 25 12:59:52 2016 +0800 +++ b/tests/test-subrepo.t Wed Jul 27 08:38:54 2016 +0000 @@ -60,6 +60,9 @@ $ hg remove -S snot/file not removing snot/file: file is untracked [1] + $ hg cat snot/filenot + snot/filenot: no such file in rev 7cf8cfea66e4 + [1] $ rm -r snot Revert subrepo and test subrepo fileset keyword: