dirstate-v2: fix infinite loop in pure packer
Due to the naive approach to path relative-ness, some tree shapes
like the one introduced in the associated test could result in the
packer going into an endless loop which allocated new `Node` objects
endlessly until the process was killed by Linux's OOM killer.
Differential Revision: https://phab.mercurial-scm.org/D12170
#!/bin/sh
# @ 3: 'move2'
# |
# o 2: 'move1'
# |
# | o 1: 'change'
# |/
# o 0: 'add'
hg init copies
cd copies
echo a > a
echo b > b
echo c > c
hg ci -Am add
echo a >> a
echo b >> b
echo c >> c
hg ci -m change
hg up -qC 0
hg cp a d
hg mv b e
hg mv c f
hg ci -m move1
hg mv e g
hg mv f c
hg ci -m move2
hg bundle -a ../renames.hg
cd ..