1mod client;
5mod error;
7mod merge;
9mod rebase;
11mod repo;
13mod sleeper;
15mod sync;
17mod worktree;
19
20#[cfg(any(test, feature = "test-utils"))]
21pub use client::MockGitClient;
22pub use client::{GitClient, GitFuture, RealGitClient};
23pub use error::GitError;
25pub use merge::{SquashMergeOutcome, squash_merge, squash_merge_diff};
27pub use rebase::{
29 RebaseStepResult, abort_rebase, has_unmerged_paths, is_rebase_in_progress,
30 list_conflicted_files, list_staged_conflict_marker_files, rebase, rebase_continue,
31 rebase_onto_start, rebase_start,
32};
33pub use repo::{main_repo_root, repo_url};
35#[cfg(test)]
36pub(crate) use sleeper::MockSleeper;
37pub(crate) use sleeper::{Sleeper, ThreadSleeper};
38pub use sync::{
40 BranchTrackingMap, PullRebaseResult, SingleCommitMessageStrategy, branch_tracking_statuses,
41 commit_all, commit_all_preserving_single_commit, current_upstream_reference, delete_branch,
42 diff, fetch_remote, get_ahead_behind, get_ref_ahead_behind, has_commits_since,
43 head_commit_message, head_hash, head_short_hash, is_worktree_clean, list_local_commit_titles,
44 list_upstream_commit_titles, pull_rebase, push_current_branch,
45 push_current_branch_to_remote_branch, ref_hash, remote_branch_exists, stage_all,
46 tracked_worktree_status, worktree_status,
47};
48pub use worktree::{create_worktree, detect_git_info, find_git_repo_root, remove_worktree};