NBS-on-Git: add GitBlobstore-backed NBS store and empty-remote bootstrap#10474
Merged
coffeegoddd merged 4 commits intomainfrom Feb 11, 2026
Merged
NBS-on-Git: add GitBlobstore-backed NBS store and empty-remote bootstrap#10474coffeegoddd merged 4 commits intomainfrom
coffeegoddd merged 4 commits intomainfrom
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR adds support for opening NBS stores against empty Git remotes and bootstrapping the refs/dolt/data reference on the first write. It provides a new NewNoConjoinGitStore function and implements fetch/push semantics that gracefully handle missing remote references.
Changes:
- Added
NewNoConjoinGitStorefunction to create GitBlobstore-backed NBS stores without conjoin support - Implemented empty-remote bootstrap logic: fetch operations treat missing remote refs as empty stores, and push operations create refs that don't exist
- Enhanced error handling to distinguish between missing remote refs and other fetch failures
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| go/store/nbs/store.go | Added NewNoConjoinGitStore factory function following established patterns |
| go/store/nbs/git_blobstore_empty_remote_test.go | Comprehensive tests for empty remote handling at the NBS layer |
| go/store/blobstore/internal/git/impl.go | Enhanced FetchRef to detect missing remote refs and removed PushRefWithLease validation to allow bootstrap pushes |
| go/store/blobstore/internal/git/impl_test.go | Tests for missing remote ref detection and bootstrap push semantics |
| go/store/blobstore/internal/git/api.go | Updated PushRefWithLease documentation to clarify bootstrap semantics |
| go/store/blobstore/git_blobstore.go | Implemented empty remote handling in syncForRead and remoteManagedWrite |
| go/store/blobstore/git_blobstore_test.go | Added test verifying Put operation bootstraps empty remotes |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Contributor
Author
|
@coffeegoddd DOLT
|
reltuk
approved these changes
Feb 11, 2026
Contributor
Author
|
@coffeegoddd DOLT
|
Contributor
Author
|
@coffeegoddd DOLT
|
Contributor
Author
|
@coffeegoddd DOLT
|
Contributor
Author
|
@coffeegoddd DOLT
|
Contributor
Author
|
@coffeegoddd DOLT
|
Contributor
Author
|
@coffeegoddd DOLT
|
|
@coffeegoddd DOLT
|
|
@coffeegoddd DOLT
|
|
@coffeegoddd DOLT
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add nbs.NewGitStore wiring plus fetch/push semantics and tests to open against an empty Git remote and bootstrap refs/dolt/data on first write.