##// END OF EJS Templates
hg-core: add `Revlog.get_node_rev`...
Antoine Cezar -
r46105:4f11a67a default
parent child Browse files
Show More
@@ -79,6 +79,32 b' impl Revlog {'
79 })
79 })
80 }
80 }
81
81
82 /// Return number of entries of the `Revlog`.
83 pub fn len(&self) -> usize {
84 self.index().len()
85 }
86
87 /// Returns `true` if the `Revlog` has zero `entries`.
88 pub fn is_empty(&self) -> bool {
89 self.index().is_empty()
90 }
91
92 /// Return the full data associated to a node.
93 #[timed]
94 pub fn get_node_rev(&self, node: &[u8]) -> Result<Revision, RevlogError> {
95 let index = self.index();
96 // This is brute force. But it is fast enough for now.
97 // Optimization will come later.
98 for rev in (0..self.len() as Revision).rev() {
99 let index_entry =
100 index.get_entry(rev).ok_or(RevlogError::Corrupted)?;
101 if node == index_entry.hash() {
102 return Ok(rev);
103 }
104 }
105 Err(RevlogError::InvalidRevision)
106 }
107
82 /// Return the full data associated to a revision.
108 /// Return the full data associated to a revision.
83 ///
109 ///
84 /// All entries required to build the final data out of deltas will be
110 /// All entries required to build the final data out of deltas will be
General Comments 0
You need to be logged in to leave comments. Login now