# HG changeset patch # User Martin von Zweigbergk # Date 2018-04-03 06:52:43 # Node ID 6ff8bd691fb8fd25a4e16ead04d13bcf7101e549 # Parent 14cd5290c4e67cc8db722533c23f66e126ff09df narrow: add trailing slash to dir earlier for debug{revlog,index,data} The treemanifest code internally uses trailing slashes on directories (except for the root directory, which is an empty string). We should make sure we pass in directories with trailing slashes when we work with the treemanifest code. For some reason, I seem to have decided to be nice to the callers instead in 49c583ca48c4 (treemanifest: add --dir option to debug{revlog,data,index}, 2015-04-12). Let's fix that and pay the cost of fixing up the directory name close close to where we get it from the user. Differential Revision: https://phab.mercurial-scm.org/D3032 diff --git a/hgext/narrow/narrowrevlog.py b/hgext/narrow/narrowrevlog.py --- a/hgext/narrow/narrowrevlog.py +++ b/hgext/narrow/narrowrevlog.py @@ -117,8 +117,6 @@ def makenarrowmanifestrevlog(mfrevlog, r # at least some push operations. This will be used to wrap/exclude the # child directories when using treemanifests. def dirlog(self, d): - if d and not d.endswith('/'): - d = d + '/' if not repo.narrowmatch().visitdir(d[:-1] or '.'): return excludedmanifestrevlog(d) result = super(narrowmanifestrevlog, self).dirlog(d) diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -1058,6 +1058,8 @@ def openrevlog(repo, cmd, file_, opts): if 'treemanifest' not in repo.requirements: raise error.Abort(_("--dir can only be used on repos with " "treemanifest enabled")) + if not dir.endswith('/'): + dir = dir + '/' dirlog = repo.manifestlog._revlog.dirlog(dir) if len(dirlog): r = dirlog diff --git a/mercurial/manifest.py b/mercurial/manifest.py --- a/mercurial/manifest.py +++ b/mercurial/manifest.py @@ -1160,8 +1160,6 @@ class manifestrevlog(revlog.revlog): if dir: assert self._treeondisk, 'opts is %r' % opts - if not dir.endswith('/'): - dir = dir + '/' if indexfile is None: indexfile = '00manifest.i'