Mercurial > hg
view tests/test-extensions-wrapfunction.py.out @ 47096:3c11c24b82b6
dirstate-tree: Add `WithBasename` wrapper for `HgPath`
In the tree-shaped dirstate we want to have nodes representing files or
directories, where directory nodes contain a map associating "base" names
to child nodes for child files and directories.
Many dirstate operations expect a full path from the repository root, but
re-concatenating string from nested map keys all the time might be expensive.
Instead, `WithBasename` stores a full path for these operations but
behaves as its base name (last path component) for equality and comparison.
Additionally `inclusive_ancestors` provides the successive map keys
that are needed when inserting a new dirstate node at a given full path.
Differential Revision: https://phab.mercurial-scm.org/D10365
author | Simon Sapin <simon.sapin@octobus.net> |
---|---|
date | Thu, 08 Apr 2021 20:12:24 +0200 |
parents | 82bd4c5a81e5 |
children |
line wrap: on
line source
wrap 0: [0, 'orig'] wrap 1: [1, 0, 'orig'] wrap 2: [2, 1, 0, 'orig'] wrap 3: [3, 2, 1, 0, 'orig'] wrap 4: [4, 3, 2, 1, 0, 'orig'] wrap 0: [0, 4, 3, 2, 1, 0, 'orig'] unwrap 3: 3: [0, 4, 2, 1, 0, 'orig'] unwrap -: 0: [4, 2, 1, 0, 'orig'] unwrap 0: 0: [4, 2, 1, 'orig'] unwrap 4: 4: [2, 1, 'orig'] unwrap 0: -: ValueError unwrap 2: 2: [1, 'orig'] unwrap 1: 1: ['orig'] unwrap -: -: IndexError context manager ['orig'] context manager [1, 'orig'] context manager [0, 1, 'orig'] context manager [2, 0, 1, 'orig'] context manager [2, 1, 'orig'] context manager [2, 'orig'] wrap callable object [0, 'orig']