Revert almost all of 5be434785317; add a test
Because of file copies, we should update the manifest dict only after
committing all files.
abort: edit failed: false exited with status 1transaction abort!rollback completedabort: edit failed: false exited with status 1transaction abort!rollback completed