This test is actually unnecessary.  If parents is empty, we'll alloc an empty array, pass it down, and Commit will clone the empty array.  We can leave it in, or drop it.  I think the code reads cleaner without the test, and its really not much slower in the (really quite rare) initial commit case.