Mercurial > hg
view tests/test-rebase-legacy.t @ 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 | f90a5c211251 |
children |
line wrap: on
line source
#testcases continuecommand continueflag Test rebase --continue with rebasestate written by legacy client $ cat >> $HGRCPATH <<EOF > [extensions] > rebase= > drawdag=$TESTDIR/drawdag.py > EOF #if continueflag $ cat >> $HGRCPATH <<EOF > [alias] > continue = rebase --continue > EOF #endif $ hg init $ hg debugdrawdag <<'EOF' > D H > | | > C G > | | > B F > | | > Z A E > \|/ > R > EOF $ for r in A B C D E F G H R Z > do > eval node_$r=$(hg log -r $r -T '{node}') > done rebasestate generated by a legacy client running "hg rebase -r B+D+E+G+H -d Z" $ touch .hg/last-message.txt $ cat > .hg/rebasestate <<EOF > 0000000000000000000000000000000000000000 > $node_Z > 0000000000000000000000000000000000000000 > 0 > 0 > 0 > > $node_A:-2 > $node_E:0000000000000000000000000000000000000000 > $node_B:0000000000000000000000000000000000000000 > $node_F:-3 > $node_C:-3 > $node_G:0000000000000000000000000000000000000000 > $node_D:0000000000000000000000000000000000000000 > $node_H:0000000000000000000000000000000000000000 > EOF #if continuecommand $ hg continue --dry-run rebase in progress, will be resumed #endif $ hg continue rebasing 4:c1e6b162678d B "B" rebasing 8:6f7a236de685 D "D" rebasing 2:de008c61a447 E "E" rebasing 7:d2fa1c02b240 G "G" rebasing 9:6582e6951a9c H tip "H" warning: orphaned descendants detected, not stripping c1e6b162678d, de008c61a447 saved backup bundle to $TESTTMP/.hg/strip-backup/6f7a236de685-9880a3dc-rebase.hg $ hg log -G -T '{rev}:{node|short} {desc}\n' o 11:721b8da0a708 H | o 10:9d65695ec3c2 G | o 9:21c8397a5d68 E | | o 8:fc52970345e8 D | | | o 7:eac96551b107 B |/ | o 6:bd5548558fcf C | | | | o 5:aeba276fcb7d F | | | | o | 4:c1e6b162678d B | | | o | | 3:f424eb6a8c01 Z | | | +---o 2:de008c61a447 E | | | o 1:21a6c4502885 A |/ o 0:b41ce7760717 R