rust/hg-core/src/revlog/index.rs
changeset 51235 456e0fe702e8
parent 51234 59183a19954e
child 51236 eb676c35a29b
equal deleted inserted replaced
51234:59183a19954e 51235:456e0fe702e8
   597     /// `stoprev` was hit.
   597     /// `stoprev` was hit.
   598     pub fn delta_chain(
   598     pub fn delta_chain(
   599         &self,
   599         &self,
   600         rev: Revision,
   600         rev: Revision,
   601         stop_rev: Option<Revision>,
   601         stop_rev: Option<Revision>,
       
   602         using_general_delta: Option<bool>,
   602     ) -> Result<(Vec<Revision>, bool), HgError> {
   603     ) -> Result<(Vec<Revision>, bool), HgError> {
   603         let mut current_rev = rev;
   604         let mut current_rev = rev;
   604         let mut entry = self.get_entry(rev).unwrap();
   605         let mut entry = self.get_entry(rev).unwrap();
   605         let mut chain = vec![];
   606         let mut chain = vec![];
       
   607         let using_general_delta =
       
   608             using_general_delta.unwrap_or_else(|| self.uses_generaldelta());
   606         while current_rev.0 != entry.base_revision_or_base_of_delta_chain().0
   609         while current_rev.0 != entry.base_revision_or_base_of_delta_chain().0
   607             && stop_rev.map(|r| r != current_rev).unwrap_or(true)
   610             && stop_rev.map(|r| r != current_rev).unwrap_or(true)
   608         {
   611         {
   609             chain.push(current_rev);
   612             chain.push(current_rev);
   610             let new_rev = if self.uses_generaldelta() {
   613             let new_rev = if using_general_delta {
   611                 entry.base_revision_or_base_of_delta_chain()
   614                 entry.base_revision_or_base_of_delta_chain()
   612             } else {
   615             } else {
   613                 UncheckedRevision(current_rev.0 - 1)
   616                 UncheckedRevision(current_rev.0 - 1)
   614             };
   617             };
   615             current_rev = self.check_revision(new_rev).ok_or_else(|| {
   618             current_rev = self.check_revision(new_rev).ok_or_else(|| {