repoview: protect `base` computation from weird phase root
If for some reason the phase roots contains nullid, the set of filtered revs
will contains -1. That confuse Mercurial a lot. In particular this corrupt the
branchcache.
Standard code path does not result in nullid phase root. It can only result from
altered `.hg/store/phaseroots` or buggy extension. However better safe than
sorry.
$ hg init a
$ cd a
$ hg init b
$ echo x > b/x
Should print nothing:
$ hg add b
$ hg st
Should fail:
$ hg st b/x
abort: path 'b/x' is inside nested repo 'b' (glob)
[255]
$ hg add b/x
abort: path 'b/x' is inside nested repo 'b' (glob)
[255]
Should fail:
$ hg add b b/x
abort: path 'b/x' is inside nested repo 'b' (glob)
[255]
$ hg st
Should arguably print nothing:
$ hg st b
$ echo a > a
$ hg ci -Ama a
Should fail:
$ hg mv a b
abort: path 'b/a' is inside nested repo 'b' (glob)
[255]
$ hg st
$ cd ..