MCPcopy Create free account
hub / github.com/atomicdotdev/atomic / create_shared_view

Method create_shared_view

atomic-repository/src/repository/views.rs:130–155  ·  view source on GitHub ↗

Create a new Shared view with no parent. Changes inserted into a Shared view go into the global `GRAPH` table and are permanently visible to all views. This is the correct scope to use for server-side push targets, where changes must be universally visible regardless of which run or request inserts them. Returns `ViewAlreadyExists` if the view already exists.

(&mut self, name: &str)

Source from the content-addressed store, hash-verified

128 ///
129 /// Returns `ViewAlreadyExists` if the view already exists.
130 pub fn create_shared_view(&mut self, name: &str) -> Result<(), RepositoryError> {
131 ensure_workspace_dir(&self.dot_dir, name)?;
132
133 let mut txn = self
134 .pristine
135 .write_txn()
136 .map_err(|e| RepositoryError::Database(e.to_string()))?;
137
138 if txn
139 .get_view(name)
140 .map_err(|e| RepositoryError::Database(e.to_string()))?
141 .is_some()
142 {
143 return Err(RepositoryError::ViewAlreadyExists {
144 name: name.to_string(),
145 });
146 }
147
148 txn.create_view(name, ViewScope::Shared, None)
149 .map_err(|e| RepositoryError::Database(e.to_string()))?;
150
151 txn.commit()
152 .map_err(|e| RepositoryError::Database(e.to_string()))?;
153
154 Ok(())
155 }
156
157 /// Change a view's scope between Draft and Shared.
158 ///

Callers 1

runMethod · 0.80

Calls 5

ensure_workspace_dirFunction · 0.85
write_txnMethod · 0.80
commitMethod · 0.80
get_viewMethod · 0.45
create_viewMethod · 0.45

Tested by

no test coverage detected