# HG changeset patch # User Yuya Nishihara <y...@tcha.org> # Date 1511593310 -32400 # Sat Nov 25 16:01:50 2017 +0900 # Node ID b6e526ee5d2662ca30a555ca51264b3e371fe44e # Parent 38e952030f0c4746257280d47f0f94b6cb9ddb41 cat: do not instantiate subrepo if no potential match in it
This fixes the test failure in hg-git. https://bitbucket.org/durin42/hg-git/issues/227/ diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -3068,6 +3068,8 @@ def cat(ui, repo, ctx, matcher, basefm, err = 0 for subpath in sorted(ctx.substate): + if not matcher.visitdir(subpath): + continue sub = ctx.sub(subpath) try: submatch = matchmod.subdirmatcher(subpath, matcher) diff --git a/tests/test-subrepo.t b/tests/test-subrepo.t --- a/tests/test-subrepo.t +++ b/tests/test-subrepo.t @@ -1081,6 +1081,36 @@ Prepare a repo with subrepo $ hg cat -T '{path}\n' 're:^sub' sub/repo/foo (glob) + inaccessible subrepos: + + $ mv sub sub_ + $ touch sub + $ hg cat .hgsub .hgsubstate + sub/repo = sub/repo + f42d5c7504a811dda50f5cf3e5e16c3330b87172 sub/repo + $ hg cat sub/repo/foo + abort: *: '$TESTTMP/issue1852a/sub/repo' (glob) + [255] + $ rm sub + $ mv sub_ sub + + symlink traversal: + +#if symlink + + $ mv sub/repo sub/repo_ + $ ln -s repo_ sub/repo + $ hg cat .hgsub .hgsubstate + sub/repo = sub/repo + f42d5c7504a811dda50f5cf3e5e16c3330b87172 sub/repo + $ hg cat sub/repo/foo + abort: subrepo 'sub/repo' traverses symbolic link + [255] + $ rm sub/repo + $ mv sub/repo_ sub/repo + +#endif + missing subrepos in working directory: $ mkdir -p tmp/sub/repo _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel