Expand description
§panproto-git
Bidirectional git ↔ panproto-vcs translation bridge.
Enables git push cospan main by translating between git repositories
and panproto-vcs stores. On import, git trees are parsed through
panproto-project to produce structural schemas. On export, schemas
are emitted back to source text via panproto-parse emitters.
§Import flow (git → panproto)
- Walk git commit DAG topologically (parents before children)
- For each commit: read all files from the git tree
- Parse each file through its language parser (via
panproto-project) - Assemble project-level schema (coproduct)
- Store schema and create panproto-vcs commit (preserving author, timestamp, message)
§Export flow (panproto → git)
- Load project schema from panproto-vcs commit
- Emit source files via panproto-parse emitters
- Build git tree and commit objects
§Functoriality
Import preserves DAG structure: parent pointers in panproto-vcs match the
git DAG. Composition of imports matches import of composition:
import(a ; b) = import(a) ; import(b).
Re-exports§
pub use error::GitBridgeError;pub use export::ExportResult;pub use export::export_to_git;pub use import::BLOB_CACHE_FILE;pub use import::BlobCacheLoadError;pub use import::BlobSchemaCache;pub use import::ImportResult;pub use import::import_git_repo;pub use import::import_git_repo_incremental;pub use import::import_git_repo_persistent;pub use import::import_git_repo_with_cache;pub use import::load_blob_cache;pub use import::save_blob_cache;