Skip to main content

git_policy_cli/push/
mod.rs

1//! What:
2//!  Pushes:
3//!  the automatic push after a commit,
4//!  manual push handling,
5//!  bounded Git queries,
6//!  retries and progress watching.
7//! Why:
8//!  Push has a long lifecycle with many waits.
9//!
10//! In TS you'd write (pseudocode):
11//! ```ts
12//! // push/index.ts: one `export * from './file'` per module below.
13//! ```
14
15/// Controls for stopping a push on no progress, with real Git and a local remote.
16#[cfg(test)]
17mod push_patience_tests;
18
19/// Controls for a push that waits for a slow server while connected, on probes that hold sockets and on Git over HTTP.
20#[cfg(test)]
21mod push_wait_tests;
22
23/// Controls for a push whose server runs a silent check after the pack is sent, over HTTP and over a local path.
24#[cfg(test)]
25mod push_slow_server_tests;
26
27/// The push of a merge that integrated a lost race, planned and run inside the running wrapper.
28pub mod stacked_merge_push;
29
30/// The service's own retry of a push it stopped or that failed: the pauses, the waiting branches, the final failure.
31pub mod push_retry;
32
33/// The retry plan on disk, in the service instance's journal, so that a restarted service keeps trying the pushes it was trying.
34pub mod push_retry_store;
35
36/// The per-branch file name of the push failure notice: a reversible, flat, case-safe key.
37pub mod auto_push_branch_key;
38
39/// The shared clock of every wait notice: the grace, the repeat interval and a queued commit's place in line.
40pub mod wait_progress;
41
42/// A watcher for waits that block on a child process: notices at the cadence and the child stopped at the bound.
43pub mod child_watch;
44
45/// The classes of Git step a commit starts for itself, with the bound and the notice grace of each.
46pub mod child_class;
47
48/// Read-only Git queries of the auto-push, each with a deadline and separate output streams.
49pub mod bounded_query;
50
51/// The auto-push's real `git push` with a deadline and its low-speed abort.
52pub mod bounded_push;
53
54/// The bytes a push and its processes move, sampled, and the clock that stops it on a stall.
55pub mod push_progress;
56
57/// The connected TCP sockets of the machine with their byte counts, and the sockets a process holds.
58pub mod tcp_sockets;
59
60/// The real Git of a push, its query runner and the failure types of a push.
61pub mod auto_push_single_flight;
62
63/// Where a plain `git push` of one named branch goes, from the configuration and the local refs.
64pub mod auto_push_destination;
65
66/// The push a merge, pull, cherry-pick, revert or am hands to the service when it leaves the branch ahead of its upstream.
67#[cfg(unix)]
68pub mod auto_push_trigger;
69
70/// The record of each decision of the push trigger: handed over, or declined with its reason.
71pub mod push_trigger_log;
72
73/// Publishing a landed commit that a moved remote branch rejected: the merge is made from objects alone and pushed.
74pub mod auto_push_reconcile;
75
76/// The paths of a dirty worktree and of a fast-forward, and their overlap.
77pub mod auto_push_dirty_paths;
78
79/// Post-commit auto-push of a landed commit: the push argv, the surfaced output and the failure reporting.
80pub mod auto_push;
81
82/// Authoritative manual-push updates discovered by a private dry-run push and confirmed with ls-remote.
83pub mod manual_push_porcelain;
84
85/// Why a manual push's scope could not be established, as the cause its hint is chosen by.
86pub mod manual_push_cause;
87
88/// The updates a manual `git push` would send, learned from Git's own dry-run report and confirmed against the remote.
89pub mod manual_push_probe;
90
91/// Published-set and range computation for manual-push scans: which pushed commits a remote does not have.
92pub mod manual_push_range;
93
94/// An explicit push that lost a race: run as a child, merge in what landed on the remote and publish the merge.
95pub mod push_stacking;
96
97/// Starting a child again when the operating system refuses it for lack of processes, within a bounded wait.
98pub mod start_retry;
99
100/// The manual-push candidate scope of one push: the commits and trees the destination lacks.
101pub mod manual_push_lifecycle;
102
103/// The record of a failed backup push and the rule for when a wrapper command shows it.
104pub mod push_failure_notice;
105
106/// The words that say how to change the push deadline, for the terminal and for the resident commit service.
107pub mod push_deadline_advice;