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_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, commit_all, commit_all_preserving_single_commit,
40 current_upstream_reference, delete_branch, diff, fetch_remote, get_ahead_behind,
41 get_ref_ahead_behind, has_commits_since, head_commit_message, head_hash, head_short_hash,
42 is_worktree_clean, list_local_commit_titles, list_upstream_commit_titles, pull_rebase,
43 push_current_branch, push_current_branch_to_remote_branch, ref_hash, remote_branch_exists,
44 stage_all, tracked_worktree_status, worktree_status,
45};
46pub(crate) use worktree::{create_worktree, detect_git_info, find_git_repo_root, remove_worktree};