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)
| 373 | /// This is useful after `atomic pull` or for rebuilding the vault |
| 374 | /// directory from scratch. |
| 375 | pub fn vault_materialize_all(&self) -> Result<usize, RepositoryError> { |
| 376 | let entries = self.vault_list("", None)?; |
| 377 | let mut count = 0; |
| 378 | |
| 379 | for meta in &entries { |
| 380 | self.vault_materialize(&meta.path)?; |
| 381 | count += 1; |
| 382 | } |
| 383 | |
| 384 | // Also write the manifest file |
| 385 | let manifest = self.vault_manifest()?; |
| 386 | let manifest_path = self.vault_dir().join("_manifest.json"); |
| 387 | let manifest_json = serde_json::to_string_pretty(&manifest) |
| 388 | .map_err(|e| RepositoryError::Serialization(e.to_string()))?; |
| 389 | std::fs::write(&manifest_path, manifest_json)?; |
| 390 | |
| 391 | Ok(count) |
| 392 | } |
| 393 | |
| 394 | /// Recompute the vault manifest's file_count and total_bytes from scratch. |
| 395 | /// |