Skip to content

Preserve uncommitted tables during checkout, reset --hard, and rebase#11033

Draft
elianddb wants to merge 23 commits into
mainfrom
elian/11007
Draft

Preserve uncommitted tables during checkout, reset --hard, and rebase#11033
elianddb wants to merge 23 commits into
mainfrom
elian/11007

Conversation

@elianddb

@elianddb elianddb commented May 11, 2026

Copy link
Copy Markdown
Contributor

Uncommitted tables on a branch could be silently lost when you switched branches or ran dolt reset --hard. This carries them across instead and aligns the safety checks with git.

  • Carry uncommitted tables, including their indexes and foreign keys, from source branch to the destination during dolt checkout, dolt checkout --move, dolt reset --hard, and dolt rebase
  • Rewrite carried foreign keys so they continue to reference the right columns on the destination branch
  • Block a checkout when carrying would silently lose work (same-named committed table on the destination, both branches dirty with different content, unstaged convergent edits)
  • Make dolt checkout -f discard local tracked changes but keep untracked tables
  • Leave dolt_ignore-matched tables on the source branch during the carry
    Fix reset --hard silently drops untracked tables with column tag collisions #11007

@elianddb elianddb marked this pull request as draft May 11, 2026 22:59
@coffeegoddd

coffeegoddd commented May 11, 2026

Copy link
Copy Markdown
Contributor

@coffeegoddd DOLT

read_tests from_latency to_latency percent_change
covering_index_scan 2.3 2.3 0.0
groupby_scan 132.49 134.9 1.82
index_join 1.93 1.96 1.55
index_join_scan 1.34 1.34 0.0
index_scan 211.6 215.44 1.81
oltp_point_select 0.26 0.26 0.0
oltp_read_only 5.09 5.09 0.0
select_random_points 0.55 0.55 0.0
select_random_ranges 0.64 0.64 0.0
table_scan 207.82 204.11 -1.79
types_table_scan 458.96 467.3 1.82
write_tests from_latency to_latency percent_change
oltp_delete_insert 6.21 6.21 0.0
oltp_insert 3.19 3.19 0.0
oltp_read_write 11.45 11.24 -1.83
oltp_update_index 3.3 3.3 0.0
oltp_update_non_index 3.02 3.02 0.0
oltp_write_only 6.32 6.32 0.0
types_delete_insert 6.79 6.91 1.77

@coffeegoddd

Copy link
Copy Markdown
Contributor

@elianddb DOLT

comparing_percentages
100.000000 to 100.000000
version result total
9669b57 ok 5937471
version total_tests
9669b57 5937471
correctness_percentage
100.0

@coffeegoddd

coffeegoddd commented May 11, 2026

Copy link
Copy Markdown
Contributor

@coffeegoddd DOLT

test_name from_latency_p95 to_latency_p95 percent_change
tpcc-scale-factor-1 44.98 44.98 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 36c11fe 53.32 dolt 5a151d9 53.25 -0.13

@coffeegoddd

Copy link
Copy Markdown
Contributor

@coffeegoddd DOLT

comparing_percentages
100.000000 to 100.000000
version result total
6c5b50e ok 5937471
version total_tests
6c5b50e 5937471
correctness_percentage
100.0

@coffeegoddd

Copy link
Copy Markdown
Contributor

@elianddb DOLT

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

@coffeegoddd

Copy link
Copy Markdown
Contributor

@coffeegoddd DOLT

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

@coffeegoddd

Copy link
Copy Markdown
Contributor

@elianddb DOLT

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

@coffeegoddd

Copy link
Copy Markdown
Contributor

@coffeegoddd DOLT

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

@coffeegoddd

Copy link
Copy Markdown
Contributor

@elianddb DOLT

comparing_percentages
100.000000 to 100.000000
version result total
8e63e79 ok 5937471
version total_tests
8e63e79 5937471
correctness_percentage
100.0

@coffeegoddd

Copy link
Copy Markdown
Contributor

@elianddb DOLT

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

@coffeegoddd

Copy link
Copy Markdown
Contributor

@coffeegoddd DOLT

comparing_percentages
100.000000 to 100.000000
version result total
7fff4d2 ok 5937471
version total_tests
7fff4d2 5937471
correctness_percentage
100.0

@coffeegoddd

Copy link
Copy Markdown
Contributor

@coffeegoddd DOLT

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

@coffeegoddd

Copy link
Copy Markdown
Contributor

@elianddb DOLT

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

@coffeegoddd

Copy link
Copy Markdown
Contributor

@elianddb DOLT

comparing_percentages
100.000000 to 100.000000
version result total
13118d3 ok 5937471
version total_tests
13118d3 5937471
correctness_percentage
100.0

@elianddb elianddb changed the title test: dolt_reset --hard preserves untracked tables with tag collisions Preserve uncommitted tables during checkout, reset --hard, and rebase May 27, 2026
@coffeegoddd

Copy link
Copy Markdown
Contributor

@elianddb DOLT

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

@coffeegoddd

Copy link
Copy Markdown
Contributor

@coffeegoddd DOLT

comparing_percentages
100.000000 to 100.000000
version result total
5a151d9 ok 5937471
version total_tests
5a151d9 5937471
correctness_percentage
100.0

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.

reset --hard silently drops untracked tables with column tag collisions

2 participants