Adacovex.VCS¶
Version-control-system abstraction for differential modes. –compare-base and –coverage-delta need a snapshot of a base revision without disturbing the working tree. Legacy codebases can live in Mercurial, Subversion, Fossil, or jj rather than git. The snapshot operations are dispatched per VCS here:
git - git worktree add --detach in a linked worktree
hg - hg archive -r REF DIR (pure export, no working-copy change)
svn - svn info --show-item url + svn export -r REF URL DIR
fossil - copy the repo DB and fossil open it at REF in a scratch dir
jj - jj git export into the internal git store, then a git
worktree add against .jj/repo/store/git (jj commits ARE git
commits, and any change or commit id resolves)
Detection is marker-file based (.git / .jj / .hg / .svn / .fslckout /
FOSSIL*), with a command probe fallback when no marker is present. Runs only on Linux/WSL (uses sh -c for CWD-dependent tools such as fossil). HLR-DIFF: VCS abstraction for differential assessment
See also: VCS support
Note: All items in this package are public.
Types¶
type VCS_Kind¶
type VCS_Kind is (Unknown, Git, Mercurial, Subversion, Fossil, Jujutsu);
Functions¶
function Detect (Target_Dir : Standard.String) return Adacovex.VCS.VCS_Kind¶
Parameter |
Description |
|---|---|
|
Directory to inspect. |
Returns: Detected VCS kind (Unknown when none is found).
function Is_Managed (Target_Dir : Standard.String) return Standard.Boolean¶
Parameter |
Description |
|---|---|
|
Directory to inspect. |
Returns: True when a supported VCS is detected.
function To_String (Kind : Adacovex.VCS.VCS_Kind) return Standard.String [Post] [Global] [SPARK]¶
Parameter |
Description |
|---|---|
|
VCS kind. |
Returns: Lowercase display name (”” for Unknown).
function Tool_Name (Kind : Adacovex.VCS.VCS_Kind) return Standard.String [Post] [Global] [SPARK]¶
Parameter |
Description |
|---|---|
|
VCS kind. |
Returns: Tool binary name (”” for Unknown).
function UX_Note (Kind : Adacovex.VCS.VCS_Kind) return Standard.String [Post] [Global] [SPARK]¶
Parameter |
Description |
|---|---|
|
VCS kind. |
Returns: Recommendation text (”” when no note is needed).
Procedures¶
procedure Make_Snapshot (Target_Dir : Standard.String; Kind : Adacovex.VCS.VCS_Kind; Base_Ref : Standard.String; Tmp_Path : Standard.String; Tmp_Len : Standard.Natural; Success : Standard.Boolean)¶
Parameter |
Description |
|---|---|
|
Revision to snapshot (branch/commit/rev/tag). |
|
Detected VCS kind (from Detect). |
|
True when the snapshot was created. |
|
Root of the target repository. |
|
Length of the snapshot path on success. |
|
Output buffer receiving the snapshot path. |
procedure Remove_Snapshot (Target_Dir : Standard.String; Kind : Adacovex.VCS.VCS_Kind; Tmp_Path : Standard.String)¶
Parameter |
Description |
|---|---|
|
VCS kind the snapshot was created with. |
|
Root of the target repository. |
|
Snapshot directory to remove. |