Skip to content

ALC-3006: Conflicting change

Alcuin stopped because going ahead would undo or collide with something else. Usually a .sql file you are editing changed on disk since Alcuin read it, and saving would have overwritten that change.

Alcuin does not save. It reads the file again, and a bar appears above the editor:

query.sql changed on disk, and this tab has changes too., with Keep mine and Reload from disk.

A file that was deleted or moved is not this error: the bar reads query.sql was deleted or moved. Save to write it again., with Dismiss and Save, and saving writes the file again.

Alcuin also watches the files open in tabs. When a file changes on disk and the tab has no unsaved changes, Alcuin reloads it without asking and shows Reloaded query.sql: it changed on disk.

Another program wrote to the file after Alcuin read it: another editor, a git checkout or pull, a formatter, or a sync tool.

Choose which version wins:

  • Keep mine keeps the tab’s text. The next save writes it over the file, and the change on disk is lost.
  • Reload from disk replaces the tab’s text with the file’s. Your unsaved changes in the tab are lost.

To keep both, copy the tab’s text somewhere first, then click Reload from disk and merge by hand. Or run Save query as file… from the command palette to write the tab to a new file.

The same code covers other places where something changed between looking and doing. Each message says what to do:

  • The database or the folder changed since the review, so nothing was written. Review it again.
  • The folder changed since the sheet was drawn. Rescan it, then save again. (or then check again.)
  • migrations/0004_add_memo.sql is there already: nothing was written., or … is not a file: nothing was written.
  • Answer the rename of … to … first.
  • A checkpoint is being taken or restored here; try again once it is done.

A job … is already running., with an id.

A background request, such as an assistant request, was started a second time with the same id while the first was still running. In normal use this should not happen.

Wait for the first request to finish, or stop it, then try again. If it keeps happening, report it as described in ALC-9005.

The engine reports this as ENGINE_CONFLICT. Quote either name in an issue.