branchcache: have a hasnode function to validate nodes
Upcoming patches will delay node validation until it's required. So we need to a
way in branchcache class to check whether a node exists or node.
Other options were making repo or changelog an attribute of branchcache object.
But the branchcache depends on filters so I decided to pass a function object.
Differential Revision: https://phab.mercurial-scm.org/D6157
Issue1678: IndexError when pushing
setting up base repo
$ hg init a
$ cd a
$ touch a
$ hg ci -Am a
adding a
$ cd ..
cloning base repo
$ hg clone a b
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd b
setting up cset to push
$ hg up null
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ touch a
different msg so we get a clog new entry
$ hg ci -Am b
adding a
created new head
pushing
$ hg push -f ../a
pushing to ../a
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 0 changes to 0 files (+1 heads)
$ cd ..