libvctrl 0.5.1

A robust, content-addressed version control engine for arbitrary data, designed for embedding into applications.
Documentation
pub mod branch;
pub mod checkout;
pub mod cherry_pick;
pub mod create_commit;
pub mod init;
pub mod log;
pub mod merge;
pub mod revert;
pub mod tag_cmd;
pub mod verify_commit;
pub use init::*;
pub mod merge_branch;
pub use merge_branch::*;
pub mod blame;
pub mod diff;
pub mod log_graph;
pub mod stash;
pub use log_graph::*;
pub mod verify_tag;
pub use verify_tag::*;
pub mod describe;
pub use describe::*;
pub mod octopus_merge;
pub use octopus_merge::*;
pub mod rebase;
pub use rebase::*;
pub mod fsck;
pub use fsck::*;
pub mod show;
pub use blame::*;
pub use branch::*;
pub use checkout::*;
pub use cherry_pick::*;
pub use create_commit::*;
pub use diff::*;
pub use log::*;
pub use merge::*;
pub use revert::*;
pub use show::*;
pub use stash::*;
pub use tag_cmd::*;
pub use verify_commit::*;

use crate::error::VctrlError;
use crate::storage::traits::{ObjectStore, RefStore};

pub trait Command {
    type Output;
    fn execute(
        &self,
        store: &mut dyn ObjectStore,
        refs: &mut dyn RefStore,
    ) -> Result<Self::Output, VctrlError>;
}