Materialize all vault entries to disk. Reads every entry from redb and writes it as a markdown file. Also writes the manifest as `_manifest.json`. This is useful after `atomic pull` or for rebuilding the vault directory from scratch.
(&self)
| 386 | /// This is useful after `atomic pull` or for rebuilding the vault |
| 387 | /// directory from scratch. |
| 388 | pub fn vault_materialize_all(&self) -> Result<usize, RepositoryError> { |
| 389 | let entries = self.vault_list("", None)?; |
| 390 | let mut count = 0; |
| 391 | |
| 392 | for meta in &entries { |
| 393 | self.vault_materialize(&meta.path)?; |
| 394 | count += 1; |
| 395 | } |
| 396 | |
| 397 | // Also write the manifest file |
| 398 | let manifest = self.vault_manifest()?; |
| 399 | let manifest_path = self.vault_dir().join("_manifest.json"); |
| 400 | let manifest_json = serde_json::to_string_pretty(&manifest) |
| 401 | .map_err(|e| RepositoryError::Serialization(e.to_string()))?; |
| 402 | std::fs::write(&manifest_path, manifest_json)?; |
| 403 | |
| 404 | Ok(count) |
| 405 | } |
| 406 | |
| 407 | /// Recompute the vault manifest's file_count and total_bytes from scratch. |
| 408 | /// |