(&self, tree: git2::Tree, path: &mut VecDeque<String>)
| 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, |
no test coverage detected