Skip to content

feat(faseC): native deltix pull + fetch (fast-forward) over REST NDJSON - #17

Merged
SammyBytes merged 1 commit into
mainfrom
feat/faseC-pull-fetch
Aug 29, 2026
Merged

feat(faseC): native deltix pull + fetch (fast-forward) over REST NDJSON#17
SammyBytes merged 1 commit into
mainfrom
feat/faseC-pull-fetch

Conversation

@SammyBytes

Copy link
Copy Markdown
Owner

Summary

Replaces the file-based gRPC pull with a commit-based native deltix pull (git-like), and adds deltix fetch. Depends on the server export endpoints (Fase B) and the schema-DDL import fix.

Changes

  • VersioningApiAdapter: fetchRefs (GET /refs), pullCommits (GET /pull-commits → NDJSON + X-Deltix-Server-Head). ImportedTable now carries schema DDL.
  • VersioningService: fetchRefs / pullCommits wrappers.
  • VersioningLocalService: applyCommits (create table from DDL or truncate + reload rows + commit with original msg/author), getRemoteHead, checkout; getUnpushedCommits now exports schema DDL per table.
  • CLI: deltix pull = fast-forward (download commits since origin/<branch>, apply onto local branch, advance origin). deltix fetch materializes onto origin/<branch> without touching the working branch. Divergence (local ahead) is refused with a clear message — merge is Fase D. Retires the legacy deltix pull <repo> <file> gRPC path.

Verification

Real Dolt: applyCommits of server-shaped commits into a fresh repo → data, primary key, per-commit authors and origin/<branch> pointer all correct. 111 unit tests pass, build + lint clean.

Note

pull command signature changed (no file arg) — breaking for the old file-pull. CHANGELOG/version bump handled at the end of the roadmap.

Replaces the file-based gRPC pull with a commit-based native pull, mirroring
git. Adds fetch as its own command.

Client:
- VersioningApiAdapter: fetchRefs (GET /refs), pullCommits (GET /pull-commits,
  parses NDJSON + X-Deltix-Server-Head). ImportedTable now carries schema DDL.
- VersioningService: fetchRefs / pullCommits wrappers.
- VersioningLocalService: applyCommits (create table from DDL or truncate,
  reload rows, commit with original msg/author), getRemoteHead, checkout;
  getUnpushedCommits now exports schema DDL per table too.
- CLI: deltix pull = fast-forward (download commits since origin/<branch>,
  apply onto local branch, advance origin); deltix fetch materializes onto
  origin/<branch> without touching the working branch. Divergence (local ahead)
  is refused with a clear message (merge is Fase D). Retires the legacy
  'deltix pull <repo> <file>' gRPC path (dataflow import removed from CLI).

Verified against real Dolt: applyCommits of server-shaped commits into a fresh
repo -> data, primary key, per-commit authors and origin/<branch> pointer all
correct. 111 unit tests pass, build + lint clean.
@SammyBytes
SammyBytes merged commit 2ecbd30 into main Aug 29, 2026
2 checks passed
@SammyBytes
SammyBytes deleted the feat/faseC-pull-fetch branch August 29, 2026 20:08
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