Skip to content

Git remote support fixes: shard git blobstore writes and normalize clone/remote URLs#10485

Merged
coffeegoddd merged 4 commits intomainfrom
db/fixes
Feb 12, 2026
Merged

Git remote support fixes: shard git blobstore writes and normalize clone/remote URLs#10485
coffeegoddd merged 4 commits intomainfrom
db/fixes

Conversation

@coffeegoddd
Copy link
Copy Markdown
Contributor

Fix git-remote workflows by defaulting git-blobstore sharding to 50MB and correcting clone dir inference, SSH remote parsing, and empty-remote validation (with tests).

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes several git-remote workflows by improving git-backed storage defaults, normalizing git remote URLs at add-time, correcting clone directory inference, and adding validation for empty git remotes (with updated/new tests).

Changes:

  • Default git blobstore writes to use chunked objects with a 50MiB max part size when not explicitly configured.
  • Normalize git remote URLs when storing them (e.g., scp-style SSH → git+ssh://...) and validate that git remotes have at least one branch.
  • Fix clone directory inference to strip .git suffix and expand test coverage + integration test setup.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
integration-tests/bats/remotes-git.bats Adds a helper to seed an initial branch on bare git remotes so git-remote integration tests can push reliably.
go/store/nbs/store.go Applies a default MaxPartSize (50MiB) for git-backed stores to enable chunked writes by default.
go/store/nbs/git_blobstore_empty_remote_test.go Adds a test asserting NewGitStore enables chunked writes by default.
go/libraries/doltcore/dbfactory/git_remote.go Adds ErrGitRemoteHasNoBranches and blocks CreateDB for git remotes with no remote branches.
go/libraries/doltcore/dbfactory/git_remote_test.go Seeds a main branch for existing tests and adds a new test for the “no branches” failure.
go/cmd/dolt/commands/remote.go Stores normalized git+* URLs for git remotes when adding via SQL path.
go/cmd/dolt/commands/remote_test.go Adds a unit test for storing normalized git URLs.
go/cmd/dolt/commands/clone.go Strips .git from inferred clone directory names.
go/cmd/dolt/commands/clone_test.go Updates expected inferred dir and adds coverage for git+file://... URL inference.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@coffeegoddd
Copy link
Copy Markdown
Contributor Author

@coffeegoddd DOLT

read_tests from_latency to_latency percent_change
covering_index_scan 0.58 0.55 -5.17
groupby_scan 9.91 9.91 0.0
index_join 1.82 1.82 0.0
index_join_scan 1.32 1.34 1.52
index_scan 21.89 22.28 1.78
oltp_point_select 0.27 0.27 0.0
oltp_read_only 5.28 5.37 1.7
select_random_points 0.53 0.54 1.89
select_random_ranges 0.55 0.55 0.0
table_scan 21.89 22.69 3.65
types_table_scan 66.84 66.84 0.0
write_tests from_latency to_latency percent_change
oltp_delete_insert 6.32 6.32 0.0
oltp_insert 3.07 3.07 0.0
oltp_read_write 11.45 11.45 0.0
oltp_update_index 3.19 3.19 0.0
oltp_update_non_index 3.13 3.13 0.0
oltp_write_only 6.09 6.09 0.0
types_delete_insert 6.79 6.79 0.0

Copy link
Copy Markdown
Contributor

@reltuk reltuk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Extract the constant for 50*1024*1024 like copilot says if you want

@coffeegoddd
Copy link
Copy Markdown
Contributor Author

@coffeegoddd DOLT

read_tests from_latency to_latency percent_change
covering_index_scan 0.58 0.55 -5.17
groupby_scan 10.65 10.65 0.0
index_join 1.93 1.89 -2.07
index_join_scan 1.34 1.34 0.0
index_scan 22.28 22.28 0.0
oltp_point_select 0.27 0.27 0.0
oltp_read_only 5.28 5.28 0.0
select_random_points 0.54 0.54 0.0
select_random_ranges 0.55 0.55 0.0
table_scan 22.28 22.28 0.0
types_table_scan 66.84 68.05 1.81
write_tests from_latency to_latency percent_change
oltp_delete_insert 6.32 6.32 0.0
oltp_insert 3.07 3.07 0.0
oltp_read_write 11.45 11.45 0.0
oltp_update_index 3.19 3.19 0.0
oltp_update_non_index 3.13 3.13 0.0
oltp_write_only 6.09 6.09 0.0
types_delete_insert 6.79 6.79 0.0

@coffeegoddd
Copy link
Copy Markdown
Contributor Author

@coffeegoddd DOLT

test_name from_latency_p95 to_latency_p95 percent_change
tpcc-scale-factor-1 61.08 61.08 0.0
test_name from_server_name from_server_version from_tps to_server_name to_server_version to_tps percent_change
tpcc-scale-factor-1 dolt da07d80 37.91 dolt f19ddbf 37.77 -0.37

@coffeegoddd
Copy link
Copy Markdown
Contributor Author

@coffeegoddd DOLT

comparing_percentages
100.000000 to 100.000000
version result total
c494873 ok 5937471
version total_tests
c494873 5937471
correctness_percentage
100.0

@coffeegoddd
Copy link
Copy Markdown
Contributor Author

@coffeegoddd DOLT

test_name from_latency_p95 to_latency_p95 percent_change
tpcc-scale-factor-1 62.19 62.19 0.0
test_name from_server_name from_server_version from_tps to_server_name to_server_version to_tps percent_change
tpcc-scale-factor-1 dolt da07d80 37.41 dolt c494873 37.34 -0.19

@coffeegoddd
Copy link
Copy Markdown
Contributor Author

@coffeegoddd DOLT

read_tests from_latency to_latency percent_change
covering_index_scan 0.57 0.55 -3.51
groupby_scan 9.73 9.91 1.85
index_join 1.79 1.82 1.68
index_join_scan 1.34 1.34 0.0
index_scan 21.89 21.89 0.0
oltp_point_select 0.27 0.27 0.0
oltp_read_only 5.28 5.28 0.0
select_random_points 0.54 0.54 0.0
select_random_ranges 0.55 0.55 0.0
table_scan 21.89 22.28 1.78
types_table_scan 65.65 66.84 1.81
write_tests from_latency to_latency percent_change
oltp_delete_insert 6.32 6.32 0.0
oltp_insert 3.07 3.07 0.0
oltp_read_write 11.45 11.45 0.0
oltp_update_index 3.19 3.19 0.0
oltp_update_non_index 3.13 3.13 0.0
oltp_write_only 6.09 6.09 0.0
types_delete_insert 6.91 6.79 -1.74

@coffeegoddd
Copy link
Copy Markdown
Contributor Author

@coffeegoddd DOLT

comparing_percentages
100.000000 to 100.000000
version result total
50f92c7 ok 5937471
version total_tests
50f92c7 5937471
correctness_percentage
100.0

@coffeegoddd coffeegoddd merged commit 621a810 into main Feb 12, 2026
25 of 26 checks passed
@coffeegoddd coffeegoddd deleted the db/fixes branch February 12, 2026 00:38
@coffeegoddd
Copy link
Copy Markdown
Contributor Author

@coffeegoddd DOLT

test_name from_latency_p95 to_latency_p95 percent_change
tpcc-scale-factor-1 62.19 62.19 0.0
test_name from_server_name from_server_version from_tps to_server_name to_server_version to_tps percent_change
tpcc-scale-factor-1 dolt da07d80 37.16 dolt 50f92c7 37.22 0.16

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants