topic: makes split keep the topic
Refactor split to extract the preparation of the working directory in a
separate function.
This helps topic wrap this function to save topic before update and restore it
after preparing the working directory just before the split.