From 816ff19324e81a3354913695fc6a570598eb9358 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Sat, 3 Jan 2026 20:31:38 +0800 Subject: Include file histories in latest info updates --- crates/vcs_data/src/data/local/latest_file_data.rs | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'crates/vcs_data/src/data') diff --git a/crates/vcs_data/src/data/local/latest_file_data.rs b/crates/vcs_data/src/data/local/latest_file_data.rs index 5248cfb..720c634 100644 --- a/crates/vcs_data/src/data/local/latest_file_data.rs +++ b/crates/vcs_data/src/data/local/latest_file_data.rs @@ -8,7 +8,7 @@ use crate::{ current::current_local_path, data::{ member::MemberId, - vault::virtual_file::{VirtualFileId, VirtualFileVersion}, + vault::virtual_file::{VirtualFileId, VirtualFileVersion, VirtualFileVersionDescription}, }, }; @@ -26,6 +26,10 @@ pub struct LatestFileData { /// File version #[serde(rename = "ver")] versions: HashMap, + + /// File histories and descriptions + #[serde(rename = "his")] + histories: HashMap>, } #[derive(Debug, Default, Clone, Serialize, Deserialize)] @@ -69,9 +73,16 @@ impl LatestFileData { /// Update the held status of the files. pub fn update_info( &mut self, - map: HashMap, VirtualFileVersion)>, + map: HashMap< + VirtualFileId, + ( + Option, + VirtualFileVersion, + Vec<(VirtualFileVersion, VirtualFileVersionDescription)>, + ), + >, ) { - for (vfid, (member_id, version)) in map { + for (vfid, (member_id, version, desc)) in map { self.held_status.insert( vfid.clone(), match member_id { @@ -79,7 +90,8 @@ impl LatestFileData { None => HeldStatus::NotHeld, }, ); - self.versions.insert(vfid, version); + self.versions.insert(vfid.clone(), version); + self.histories.insert(vfid, desc); } } } -- cgit