Skip to content

[feat]: design and test Git sparse-checkout backend for svn ice #353

Description

@ss-o

Feature description

Replace or complement .zi-mirror-using-svn with a Git sparse-checkout backend for GitHub-hosted snippet directories, without regressing install, update, or status behavior.

Context

PR #338 attempted to replace SVN with Git sparse checkout, but it remained targeted at main, missed the requested rebase window, and leaves unresolved compatibility problems:

  • the sparse copy omits .git, while the proposed status path expects .git and otherwise falls back to svn status;
  • fresh install, update, status, and already-installed snippet behavior are not covered together;
  • the boundary for non-GitHub SVN sources is undefined.

Current next still calls .zi-mirror-using-svn from lib/zsh/install.zsh, so the underlying need remains valid even though PR #338 should not be revived unchanged.

Acceptance criteria

  • Define which URL/source classes use Git sparse checkout and which retain SVN compatibility.
  • Preserve repeatable fresh install and update behavior.
  • Make status detection work for the installed representation; do not depend on .git after discarding it.
  • Cover existing installations and migration/fallback behavior.
  • Add focused ZUnit coverage for install, update, status, and non-GitHub boundaries.
  • Target next with one focused implementation PR.

Tracker triage

  • Suggested item type: Feature
  • Suggested priority: P2
  • Suggested effort: Medium
  • Suggested status: Backlog

Related: #338

Metadata

Metadata

Assignees

Labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions