Skip to main content

DevelopmentNodeEnvironment_MicrosoftVSCodeDependency_22NodeVersion_Bundle_Clean_Debug_ElectronProfile_EsbuildCompiler_Mountain/IPC/WindServiceHandlers/
Git.rs

1//! # Local Git subprocess handlers
2//!
3//! Mirrors stock VS Code's `ILocalGitService` API
4//! (`src/vs/platform/git/common/localGitService.ts`) plus two
5//! Land-specific extensions: `HandleExec` for arbitrary argv
6//! (used by the Git extension) and `HandleIsAvailable` for
7//! synchronous feature detection.
8//!
9//! Cancellation discipline: every long-running entry point
10//! takes an `operationId`; the spawned PID is registered in
11//! `Shared::RunningProcesses` for the duration of the run.
12//! `HandleCancel(operationId)` looks the PID up and
13//! SIGTERMs / `taskkill`s it so the renderer can fire cancel
14//! from a different `tauri::invoke` than the one that started
15//! the operation.
16//!
17//! Layout (one export per file, file name = identity):
18//! - `HandleExec::HandleExec` - arbitrary argv (object or positional shape).
19//! - `HandleClone::HandleClone`, `HandlePull::HandlePull`,
20//!   `HandleCheckout::HandleCheckout`, `HandleRevParse::HandleRevParse`,
21//!   `HandleFetch::HandleFetch`, `HandleRevListCount::HandleRevListCount` -
22//!   curated `git` operations.
23//! - `HandleCancel::HandleCancel` - SIGTERM / taskkill by op id.
24//! - `HandleIsAvailable::HandleIsAvailable` - cached `git --version` probe.
25//!
26//! `Shared` (private) - `RunGit`, the process registry,
27//! and small parsers.
28
29pub mod HandleCancel;
30
31pub mod HandleCheckout;
32
33pub mod HandleClone;
34
35pub mod HandleExec;
36
37pub mod HandleFetch;
38
39pub mod HandleIsAvailable;
40
41pub mod HandlePull;
42
43pub mod HandleRevListCount;
44
45pub mod HandleRevParse;
46
47#[path = "Git/Shared/mod.rs"]
48pub(crate) mod Shared;