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;
26pub(crate) use merge::{squash_merge, squash_merge_diff};
27pub use rebase::{InProgressGitOperation, RebaseStepResult};
28pub(crate) use rebase::{
29 abort_rebase, has_unmerged_paths, in_progress_operation, is_rebase_in_progress,
30 list_conflicted_files, list_staged_conflict_marker_files, rebase, rebase_continue,
31 rebase_onto_start, rebase_start,
32};
33pub(crate) use repo::{main_checkout_working_tree, main_repo_root, repo_url};
34#[cfg(test)]
35pub(crate) use sleeper::MockSleeper;
36pub(crate) use sleeper::{Sleeper, ThreadSleeper};
37pub use sync::{BranchTrackingMap, PullRebaseResult, SingleCommitMessageStrategy};
38pub(crate) use sync::{
39 branch_tracking_statuses, check_pre_commit_hook_ready, commit_all,
40 commit_all_preserving_single_commit, current_upstream_reference, delete_branch, diff,
41 fetch_remote, get_ahead_behind, get_ref_ahead_behind, has_commits_since, head_commit_message,
42 head_hash, head_short_hash, is_worktree_clean, list_local_commit_titles,
43 list_upstream_commit_titles, pull_rebase, push_current_branch,
44 push_current_branch_to_remote_branch, ref_hash, remote_branch_exists, stage_all,
45 tracked_worktree_status, worktree_status,
46};
47pub(crate) use worktree::{create_worktree, detect_git_info, find_git_repo_root, remove_worktree};