34 lines
899 B
Markdown
34 lines
899 B
Markdown
# codex-git
|
|
|
|
Helpers for interacting with git, including patch application and worktree
|
|
snapshot utilities.
|
|
|
|
```rust,no_run
|
|
use std::path::Path;
|
|
|
|
use codex_git::{
|
|
apply_git_patch, create_ghost_commit, restore_ghost_commit, ApplyGitRequest,
|
|
CreateGhostCommitOptions,
|
|
};
|
|
|
|
let repo = Path::new("/path/to/repo");
|
|
|
|
// Apply a patch (omitted here) to the repository.
|
|
let request = ApplyGitRequest {
|
|
cwd: repo.to_path_buf(),
|
|
diff: String::from("...diff contents..."),
|
|
revert: false,
|
|
preflight: false,
|
|
};
|
|
let result = apply_git_patch(&request)?;
|
|
|
|
// Capture the current working tree as an unreferenced commit.
|
|
let ghost = create_ghost_commit(&CreateGhostCommitOptions::new(repo))?;
|
|
|
|
// Later, undo back to that state.
|
|
restore_ghost_commit(repo, &ghost)?;
|
|
```
|
|
|
|
Pass a custom message with `.message("…")` or force-include ignored files with
|
|
`.force_include(["ignored.log".into()])`.
|