git_policy_cli/worktree_copying/mod.rs
1//! What:
2//! Copying the ignored state of a linked worktree into a new one,
3//! with staging,
4//! journal and recovery.
5//! Why:
6//! The copy is a transaction of its own with many small steps.
7//!
8//! In TS you'd write (pseudocode):
9//! ```ts
10//! // worktree_copying/index.ts: one `export * from './file'` per module below.
11//! ```
12
13/// The one failure type of the linked-worktree ignored-state copy and its diagnostics.
14pub mod worktree_copy_error;
15
16/// Which linked worktrees a worktree-creating Git command registered, before and after it ran.
17pub mod worktree_copy_registry;
18
19/// The ignored source paths a linked-worktree copy selects, and the path validation every selection passes.
20pub mod worktree_copy_selection;
21
22/// What a copy from a main checkout leaves out: caches, optionally run records, and other checkouts.
23pub mod worktree_copy_prune;
24
25/// The deterministic parent-first manifest of a copy, and the mode application to a staged copy.
26pub mod worktree_copy_manifest;
27
28/// Exact comparison of manifest entries against the filesystem, and the source stability check after staging.
29pub mod worktree_copy_compare;
30
31/// The private, validated stage of one source's ignored state beside a destination worktree.
32pub mod worktree_copy_stage;
33
34/// The exclusive creation of one destination entry from the stage, and the identity captured after it.
35#[cfg(unix)]
36pub mod worktree_copy_install_entry;
37
38/// Installation of a validated stage into a new worktree, with preflight, batches and rollback on failure.
39#[cfg(unix)]
40pub mod worktree_copy_install;
41
42/// Removal of the paths a failed installation created, only where their identity and content still prove them cli-git's own.
43#[cfg(unix)]
44pub mod worktree_copy_rollback;
45
46/// The durable journal of one copy: exact encoding, strict validation, private storage and removal.
47#[cfg(unix)]
48pub mod worktree_copy_journal;
49
50/// The durable claim on a stage container's name, and the removal of stages an interrupted copy left behind.
51#[cfg(unix)]
52pub mod worktree_copy_stage_claim;
53
54/// The append-only install log of one stage: per-batch intents and creations, with resumption.
55#[cfg(unix)]
56pub mod worktree_copy_install_log;
57
58/// One journaled installation to an end, resumption from the log, and synchronization of a created worktree.
59#[cfg(unix)]
60pub mod worktree_copy_transaction;
61
62/// The process that owns one item of a copy transaction, written into the item's name, and the proof that it still runs.
63#[cfg(unix)]
64pub mod worktree_copy_owner;
65
66/// Recovery of interrupted copies: registration checks, discards with notices, resumption, and the pending check.
67#[cfg(unix)]
68pub mod worktree_copy_recovery;
69
70/// The linked-worktree ignored-state copy around one forwarded Git invocation: the integrator's entry point.
71#[cfg(unix)]
72pub mod worktree_copy;
73
74/// Which forwarded invocations the copy applies to, and the child run that performs it.
75pub mod worktree_copy_forward;