MCPcopy Index your code
hub / github.com/emwalker/digraph / write

Method write

backend/src/git/core/mod.rs:325–354  ·  view source on GitHub ↗
(&self, repo: &git2::Repository, before: Option<git2::Tree>)

Source from the content-addressed store, hash-verified

323 }
324
325 pub fn write(&self, repo: &git2::Repository, before: Option<git2::Tree>) -> Result<git2::Oid> {
326 let mut builder = repo.treebuilder(before.as_ref())?;
327
328 for (filename, subtree) in &self.subtrees {
329 let before = match &before {
330 Some(before) => match before.get_name(filename) {
331 Some(entry) => {
332 let tree_id = entry.id();
333 Some(repo.find_tree(tree_id)?)
334 }
335 None => None,
336 },
337 None => None,
338 };
339
340 let oid = subtree.write(repo, before)?;
341 builder.insert(filename, oid, 0o040000)?;
342 }
343
344 for (filename, oid) in &self.files {
345 if let Some(oid) = oid {
346 builder.insert(filename, oid.to_owned(), 0o100644)?;
347 } else {
348 builder.remove(filename)?;
349 }
350 }
351
352 let oid = builder.write()?;
353 Ok(oid)
354 }
355}
356
357#[derive(Debug, Default)]

Callers 1

add_blobMethod · 0.45

Calls 5

ensureFunction · 0.85
insertMethod · 0.80
commitMethod · 0.80
idMethod · 0.45
removeMethod · 0.45

Tested by

no test coverage detected