MCPcopy Create free account
hub / github.com/emwalker/digraph / path_to_oid

Method path_to_oid

backend/src/git/core/mod.rs:107–129  ·  view source on GitHub ↗
(&self, tree: git2::Tree, path: &mut VecDeque<String>)

Source from the content-addressed store, hash-verified

105 }
106
107 fn path_to_oid(&self, tree: git2::Tree, path: &mut VecDeque<String>) -> Option<git2::Oid> {
108 let name = path.pop_front()?;
109
110 if path.is_empty() {
111 let entry = tree.get_name(&name)?;
112 return Some(entry.id());
113 }
114
115 let oid = tree.get_name(&name)?.id();
116
117 let subtree = match self.inner.find_tree(oid) {
118 Ok(subtree) => subtree,
119 Err(err) => match err.code() {
120 git2::ErrorCode::NotFound => return None,
121 _ => {
122 log::error!("failed to fetch subtree: {:?}", err);
123 return None;
124 }
125 },
126 };
127
128 self.path_to_oid(subtree, path)
129 }
130
131 pub fn topic_oid(
132 &self,

Callers 2

topic_oidMethod · 0.80
find_blob_by_filenameMethod · 0.80

Calls 2

is_emptyMethod · 0.45
idMethod · 0.45

Tested by

no test coverage detected