ZSF3YFZTDOXMCOC3HOT5C6MQLYLWOR7QJAOUDS2M2Z4SC2YW3GRAC XR7MNOMU5PMOOEY2EPPUABZ7NOP432RDCWUET23ONPXTT3JQIFIAC 3S6LU2U5TIU43WRE5RQS3IOLVJLVNCDL4W44FVK2HR3NAXZ7IDUAC 6HNRL5RT76NH5YNSUN7B4FHNRZXKNLX4DROFGMO4R5P2U7JWOL2QC VMOYG7MKEWTUEEY2EOL256RWCVPGRD63IFOSKXHBGJ6VSRITLMOAC SXEYMYF7P4RZMZ46WPL4IZUTSQ2ATBWYZX7QNVMS3SGOYXYOHAGQC CCFJ7VO3I73FE3MZRS5RSDRYNZVW7AXC345P4BXS7JIL2TU3LQJQC YN63NUZO4LVJ7XPMURDULTXBVJKW5MVCTZ24R7Z52QMHO3HPDUVQC 3AMEP2Y5J6GA4AWQONF4JVA3XSR3ASLHHKMYG44R72SOUY3UQCDAC IIV3EL2XYI2X7HZWKXEXQFAE3R3KC2Q7SGOT3Q332HSENMYVF32QC GHO6DWPILBBTL6CVZKERJBTFL3EY6ZT4YM4E5R4S6YPGVFKFHCVAC CCLLB7OIFNFYJZTG3UCI7536TOCWSCSXR67VELSB466R24WLJSDAC I52XSRUH5RVHQBFWVMAQPTUSPAJ4KNVID2RMI3UGCVKFLYUO6WZAC LLT3GY6ULCVHMO3VUSVI5H4O244Z3ULOWLTW2IGJXIA2TWIHJDSQC ZAEUSICJC3YOWGF6NZEQCQ34PHPRSBCJEP7FIWE6VIWJGVU734HQC 27PYHR6LO4M4RMSMLVMUKSYNQ72V6RRMRXLYQI3JA3LBHJO747YAC NYOF5766GLBTWQV2KTVRAJMGVJNJ37Z5BLJMFPZA3HG7X2Q2RXPAC VO5OQW4W2656DIYYRNZ3PO7TQ4JOKQ3GVWE5ALUTYVMX3WMXJOYQC CIEUBH465IFZXO3YDG7XYHP54NJ4TGVQD47SKNW6P5XM4X7IVNBAC KJDQ2WOMIUTVDEEQ7NMJYBZAVUZ3NIVOVJ6MUCZPRAWIEWOV6TWQC X243Z3Y54ULINQMMRIKLHRV5T237B7VUOAHVJ7DMPOQ6A6GQXY2AC UM5DLRPBCQZQBEDJDLDPKODOKLACUHZD6YL6S4JRNKW6JLPNUVSAC Q3GU26WDEYE2HXMM4WWNEGVMSXLQAKRJBSB2EJZA6JTHPKQHXCXQC BZCGXVS77ZS3N4QPLIHNWZ3YFVV7H4PXQD3U6RN5ZFVOC7QL7MBQC EAZ45JTF44727P34UQAMIFQQTSXFKABIG4PLBGC7C7KQ74GUSDPAC #[test]fn delete_non_utf8_file_test() -> Result<(), anyhow::Error> {env_logger::try_init().unwrap_or(());let mut buf = Vec::new();use std::io::Read;let mut fh = std::fs::File::open("src/tests/data/gb.1")?;fh.read_to_end(&mut buf)?;let mut repo = working_copy::memory::Memory::new();repo.add_file("file", buf);let env = pristine::sanakirja::Pristine::new_anon()?;let mut txn = env.mut_txn_begin();let mut channel = txn.open_or_create_channel("main")?;txn.add_file("file")?;let store = changestore::memory::Memory::new();record_all(&mut repo, &store, &mut txn, &mut channel, "")?;let mut buf = Vec::new();{use std::io::Read;let mut fh = std::fs::File::open("src/tests/data/8859-1.2")?;fh.read_to_end(&mut buf)?;}repo.remove_path("file")?;let (h1, change1) = record_all_change(&mut repo, &store, &mut txn, &mut channel, "")?;let mut v = Vec::new();change1.write(&store,Some(h1),|l, _p| format!("{}:{}", l.path, l.line),true,&mut v,).unwrap();let lines: Vec<&str> = std::str::from_utf8(&v).unwrap().lines().filter(|l| l.starts_with(|c| c == '-')).collect();assert_eq!(vec![" -Chinese / 中文,普通话,汉语 (GB 2312 / GB-encoding)","- 你好"],lines);Ok(())}
let name_start = ChangePosition(self.rec.contents.len().into());let file_meta = FileMetadata {metadata: meta,basename: item.basename.as_str(),};file_meta.write(&mut self.rec.contents);let name_end = ChangePosition(self.rec.contents.len().into());self.rec.contents.push(0);
let name_start = ChangePosition(self.rec.contents.len().into());let file_meta = FileMetadata {metadata: meta,basename: item.basename.as_str(),encoding: encoding.clone(),};file_meta.write(&mut self.rec.contents);let name_end = ChangePosition(self.rec.contents.len().into());self.rec.contents.push(0);
let mut name = Vec::new();let FileMetadata { basename, metadata } = changes
let mut meta = Vec::new();let FileMetadata {basename,metadata,encoding,} = changes
if name.len() > 2 {if let Ok(name) = std::str::from_utf8(&name[2..]) {if !full_path.is_empty() {full_path.push('/');}full_path.push_str(name);}
let FileMetadata { basename: name, .. } = FileMetadata::read(&mut meta);if !full_path.is_empty() {full_path.push('/');