[PATCH STABLE] cmdutil: warnings not issued in cat if subrepopath overlaps

Hannes Oldenburg hannes.christian.oldenburg at gmail.com
Wed Jul 27 08:56:42 UTC 2016


# HG changeset patch
# User Hannes Oldenburg <hannes.christian.oldenburg at gmail.com>
# 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:


More information about the Mercurial-devel mailing list