AtlatestRenderedmarkdown
Readme

sigil-git

Git operations for Sigil tools — URL parsing, bare-repo cloning, worktree management, and remote fetch via shell-out to the system git.

This package was extracted from the sigil monorepo — the in-tree history under packages/sigil-git/ is preserved here as master.

It backs the dependency resolver in sigil-build (cloning + fetching from-git deps) and is also reusable as a small git API for any Sigil tool that needs to talk to a forge.

Usage

(import (sigil git))

;; Parse a forge-shorthand URL
(parse-git-url "codeberg:sigil/sigil-git")
; => alist with forge='codeberg user="sigil" repo="sigil-git"

;; Bare-clone for the dep cache
(git-clone-bare "codeberg:sigil/sigil-git" "/tmp/sigil-git.git")

;; Add a detached-HEAD worktree at a specific ref
(git-worktree-add "/tmp/sigil-git.git" "/tmp/wt" "v0.13.1")

The full export list lives at the top of src/sigil/git.sgl.

Build & test

This is a pure-Scheme package. No native build step.

sigil deps install        # fetch sigil-stdlib via codeberg:sigil/sigil-lang
sigil test --report       # run test/test-git.sgl

For local development against an unpublished sigil-lang, use dev-redirects.sgl (sibling checkout at ../sigil-lang/):

sigil deps install --redirects ./dev-redirects.sgl
sigil test --redirects ./dev-redirects.sgl --report

License

BSD-3-Clause. See the monorepo for the canonical license text.