diff options
| author | 魏曹先生 <1992414357@qq.com> | 2025-12-24 14:45:13 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2025-12-24 14:45:13 +0800 |
| commit | dd7cb12fad0c0a5268c01f548f9e94bfa60f2b66 (patch) | |
| tree | 7d5c6abc5165a6ddc5dd3d0b8f2b773daec84d2d /crates/vcs_data/src/data/vault/virtual_file.rs | |
| parent | bff0cb9b4226385962a2967a82064e0633b4d402 (diff) | |
Refactor vault and local workspace file storage structure
Diffstat (limited to 'crates/vcs_data/src/data/vault/virtual_file.rs')
| -rw-r--r-- | crates/vcs_data/src/data/vault/virtual_file.rs | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/crates/vcs_data/src/data/vault/virtual_file.rs b/crates/vcs_data/src/data/vault/virtual_file.rs index 5ff1b22..150a469 100644 --- a/crates/vcs_data/src/data/vault/virtual_file.rs +++ b/crates/vcs_data/src/data/vault/virtual_file.rs @@ -110,21 +110,22 @@ impl Vault { ) })?; - // Ensure the first part has exactly 8 characters - if first_part.len() != 8 { + // Ensure the first part has at least 4 characters + if first_part.len() < 4 { return Err(std::io::Error::new( std::io::ErrorKind::InvalidInput, - "Invalid virtual file ID format: first part must be 8 characters", + "Invalid virtual file ID format: first part must have at least 4 characters", ))?; } - // Split into 2-character chunks and join with path separator + // Take only the first 4 characters and split into two 2-character chunks + let first_four = &first_part[0..4]; let mut path = String::new(); - for i in (0..first_part.len()).step_by(2) { + for i in (0..first_four.len()).step_by(2) { if i > 0 { path.push('/'); } - path.push_str(&first_part[i..i + 2]); + path.push_str(&first_four[i..i + 2]); } Ok(path) |
