Finalize repository files handling
The ability to write into repository files and perform the related commits has been reintroduced in Heptapod 0.12 (see #224 (closed)).
This is also called multi_action
(in the Repository
class) or user_commit_files
(in Gitaly)
The implementation wasn't completely on par with upstream GitLab. For example the create
action should take care of intermediate directories and refuse to perform an update, error handling wasn't the one expected by GitLab callers etc.
This MR closes the gap, and should help with the likes of #107 (closed). It is also a prerequisite for wikis support in Heptapod 0.13