I just noticed there is a breakage in write-tree optimization that uses the new cache-tree data structure in the "next" branch. Switching branches with "git checkout anotherbranch" when your index exactly matches the current HEAD commit and then immediately doing write-tree produces a nonsense tree, and commits on top of that results in tree objects that have duplicated entries.
I will be working on a fix now, but in the meantime please do not use the "next" branch for real work. Sorry for the breakage.