diff --git a/mercurial/help/subrepos.txt b/mercurial/help/subrepos.txt --- a/mercurial/help/subrepos.txt +++ b/mercurial/help/subrepos.txt @@ -90,7 +90,7 @@ Interaction with Mercurial Commands :archive: archive does not recurse in subrepositories unless -S/--subrepos is specified. -:cat: cat currently only handles exact file matches in subrepos. +:cat: Git subrepositories only support exact file matches. Subversion subrepositories are currently ignored. :commit: commit creates a consistent snapshot of the state of the diff --git a/tests/test-subrepo.t b/tests/test-subrepo.t --- a/tests/test-subrepo.t +++ b/tests/test-subrepo.t @@ -1071,6 +1071,18 @@ Prepare a repo with subrepo "path": "sub/repo/foo" } ] + + non-exact match: + + $ hg cat -T '{path}\n' 'glob:**' + .hgsub + .hgsubstate + sub/repo/foo (glob) + $ hg cat -T '{path}\n' 're:^sub' + sub/repo/foo (glob) + + missing subrepos in working directory: + $ mkdir -p tmp/sub/repo $ hg cat -r 0 --output tmp/%p_p sub/repo/foo $ cat tmp/sub/repo/foo_p