The B-tree implementation I am making for Obnam has reached an important milestone: it can clone trees. This is important because the way I envision I will use the trees will have one tree per backup generation, and each new generation starts by cloning the old one.

I'm still not convinced I will actually be using my own B-tree implementation instead of an existing one, but I need to do this once, so I know how they work.