heh, duh. i can't leave the shelf files open from multiple threads at once. the shelf files in changecache and textindex are now only opened when they are being used (and the lockfile is held), and closed afterwards. no more branches stomping on each other when they share cache/index. in the process, i made the textindex chew through 100 revisions at once now instead of 1.