openpencil/crates/op-git/Cargo.toml
Kayshen-X 64a5934dcf feat(desktop): add op-git crate for in-app version control
Drives the user's installed `git` via std::process::Command — the
same approach as the TS app's git-sys backend — so no libgit2/git2 C
dependency enters the workspace.

Covers repo discovery / init, working-tree status, staging, commit,
branch list / create / switch, history + diff, remotes, SSH keys and
credential storage. Adds a worktree-isolated merge orchestrator: a
branch merge runs in a throwaway detached worktree so a conflicting
.op merge never writes conflict markers into the live document — a
clean merge is fast-forwarded back, a conflicting one is reported as
a file-granular ConflictBag with the live tree left pristine.
2026-05-18 21:45:00 +08:00

22 lines
820 B
TOML

[package]
name = "op-git"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
description = "System-git-backed version control for OpenPencil documents"
# Native-only: this crate drives the system `git` executable via
# `std::process::Command`. It is the Rust counterpart of the TS
# Electron app's `apps/desktop/git/git-sys.ts` system-git backend.
# No heavy dependencies — the wire is plain subprocess + text parsing.
[dependencies]
thiserror = { workspace = true }
# Credential store (`auth.rs`) persistence — the host-keyed token /
# SSH-key table is serialized to a JSON file.
serde = { workspace = true }
serde_json = { workspace = true }
# Resolves the per-user config directory for the default credential
# store location (`AuthStore::user`).
dirs = "5"