Skip to content

v0.8.5 - protect the working copy from pull overwrites

Choose a tag to compare

@github-actions github-actions released this 04 Sep 15:10
· 13 commits to main since this release

[0.8.5] - 2026-09-04

In plain terms: The previous update made pulling apply changes as one unit, so a failed pull no longer left a half-updated copy. But if your local copy had its own recently-made changes that weren't saved yet, the pull could still overwrite them. Now, before a pull touches your tables, it checks whether you have unsaved local changes in those exact tables — and if you do, it tells you to save them first instead of silently wiping them. Your local work is never overwritten by a pull anymore.

Fixed

  • pull refuses to overwrite uncommitted local changes instead of destroying them. Both pull paths (fast-forward and diverged/merge) now check the working tree for staged or unstaged changes in the tables they are about to recreate or merge before touching anything. If such changes exist, the pull aborts with a clear UncommittedChangesError ("Pull aborted: you have uncommitted changes in ... Commit or discard them first"), leaving the working copy completely untouched — the same safety semantics as git pull refusing to overwrite local work. Previously a pull over a working tree with unsaved rows in a table being synced could wipe those rows (the accounts/migration-history data loss reproduced in #57).

Tests

  • Unit suite passes: 131 tests, 0 failures.
  • New real-Dolt integration test: a pull whose target table has an uncommitted row aborts before touching anything — the uncommitted row survives, the branch head is unchanged, and no leftover throwaway branch is created.