Repository handle and materialization
fn apply_shallow_updates(fs : &FileSystem, rfs : &RepoFileSystem, git_dir : String, shallow : Array[ObjectId], unshallow : Array[ObjectId]) -> Unit raise GitErrorfn checkout_commit_to_fs(store : ObjectStore, commit_id : ObjectId, fs : &FileSystem, root : String, rfs : &RepoFileSystem) -> Unit raise GitErrorfn materialize_clone_to_fs(store : ObjectStore, commit_id : ObjectId, refname : String, remote_url : String, fs : &FileSystem, root : String, rfs : &RepoFileSystem) -> Unit raise GitErrorfn write_git_metadata(store : ObjectStore, commit_id : ObjectId, refname : String, remote_url : String, fs : &FileSystem, root : String) -> Unit raise GitError