Maybe we should add another function which takes care of copying a revision rather than trying to fit it all in `createRevision`?