Support pushing root changesets
Support empty remotes
Don't create a new manifest when there are no differences with the parent
Properly order file chunks when pushing commits with metadata along with commits without