Skip to content

Clone parity: depth/filter/recurse-submodules on file remotes#28

Merged
Ismail-elkorchi merged 1 commit into
mainfrom
clone-options-and-file-remote-parity
Feb 17, 2026
Merged

Clone parity: depth/filter/recurse-submodules on file remotes#28
Ismail-elkorchi merged 1 commit into
mainfrom
clone-options-and-file-remote-parity

Conversation

@Ismail-elkorchi

Copy link
Copy Markdown
Owner

Acceptance Criteria

  • Clone from local path and file:// remote persists origin metadata with parity to git behavior.
  • Clone accepts depth, filter, and recurseSubmodules options and writes expected repository state.
  • Clone parity evidence covers behavior with git baseline validation and fsck integrity checks.

Checklist

  • Implemented clone option handling in Repo.clone.
  • Added node parity tests for file remote clone with depth/filter/recurse-submodules.
  • Updated invariants and parity matrix evidence text.
  • Updated check scripts to gate parity coverage for the new clone signals.
  • Ran node scripts/check --runtime=node successfully.

Simulated Role Reviews

Product review

Findings:

  • Clone options previously rejected in API are now executed for supported local and file remotes.
    Changes made:
  • Added clone source resolution, origin config hydration, shallow boundary writing, and recursive submodule clone flow.
    Evidence pointers:
  • src/index.ts
  • tests/node/clone-receive-pack.test.mjs

QA review

Findings:

  • Parity coverage needed explicit checks for option flags and file remote path handling.
    Changes made:
  • Added clone file remote supports depth filter and recurse-submodules parity INV-FEAT-0053 test and retained baseline git comparison.
    Evidence pointers:
  • tests/node/clone-receive-pack.test.mjs
  • scripts/check

Security review

Findings:

  • Clone URL parsing must reject unsupported schemes and maintain path safety while materializing trees and submodules.
    Changes made:
  • Added source-resolution guards for scheme handling and kept worktree path validation in clone materialization and submodule flow.
    Evidence pointers:
  • src/index.ts
  • node scripts/check --runtime=node

Performance review

Findings:

  • Option support should preserve deterministic behavior and avoid repeated network assumptions for local/file cloning.
    Changes made:
  • Implemented direct object/ref reuse from source gitdir and deterministic traversal for shallow boundary computation.
    Evidence pointers:
  • src/index.ts
  • tests/node/clone-receive-pack.test.mjs

Maintainer review

Findings:

  • Governance artifacts must stay aligned with implemented parity scope and invariant wording.
    Changes made:
  • Updated API docs, parity matrix text, invariant statement, and parity gate checks for depth/filter/recurse-submodules and file remote support.
    Evidence pointers:
  • docs/api.md
  • docs/parity-matrix.md
  • spec/invariants.yaml
  • scripts/parity_matrix_check

@Ismail-elkorchi Ismail-elkorchi merged commit 1195045 into main Feb 17, 2026
7 checks passed
@Ismail-elkorchi Ismail-elkorchi deleted the clone-options-and-file-remote-parity branch February 17, 2026 00:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant