From 38e448cc75f78e6c19b34d6af72a7d0e0708aafe Mon Sep 17 00:00:00 2001 From: HouXiaoxuan Date: Wed, 20 Dec 2023 01:08:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0tree=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E7=9A=84=E5=87=BD=E6=95=B0=EF=BC=8C=E6=9C=89=E5=BE=85=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/models/index.rs | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/models/index.rs b/src/models/index.rs index 57ccd4f..92b80c7 100644 --- a/src/models/index.rs +++ b/src/models/index.rs @@ -96,6 +96,18 @@ impl Index { let ser = serde_json::to_string(&self).unwrap(); println!("{}", ser); } + + /** 获取跟踪的文件列表 */ + pub fn get_tracked_files(&self) -> Vec { + // XXX 测试版本,有待修改 + let mut files = Vec::new(); + self.entries.keys().for_each(|file| { + if file.exists() { + files.push(file.clone()); + } + }); + files + } } #[cfg(test)] @@ -114,7 +126,7 @@ mod tests { } #[test] - fn test_save(){ + fn test_save() { util::setup_test_with_mit(); let mut index = Index::new(); let metadata = fs::metadata("../.gitignore").unwrap(); @@ -126,6 +138,13 @@ mod tests { mode: "100644".to_string(), }; index.add(PathBuf::from(".gitignore"), file_meta_data); + index.add( + PathBuf::from("../src/models/index.rs"), + FileMetaData::new( + &Blob::new(Path::new("../src/models/index.rs")), + Path::new("../src/models/index.rs"), + ), + ); index.save(); } } \ No newline at end of file