Edits and commits
Most edits land the moment you make them. When a change only makes sense as a whole, such as twenty cells that are only right once all twenty are done, commit mode holds your edits back until you commit them together as one version.
Edits land as you make them
By default a table saves every edit at once. Change a cell, add a row or delete one, and the change lands: everyone in the model sees it immediately, and it becomes a new version of the table.
There is nothing to save, and undo (⌘ Z) reverses your last edit.
Commit mode
To gather edits instead, turn on commit mode for the table:
- Point at the small pause control to the left of the table's header. Its tooltip reads Start commit mode: edits wait until you commit them.
- Click it. The table enters commit mode.
- Make your edits. They are staged: shown on the canvas, highlighted, but not yet part of the table.
- When you're done, commit or discard:
- Commit changes (the same control, or Commit staged edits on the action bar) lands every staged edit together as one new version.
- Discard changes and leave commit mode (or Discard staged edits on the action bar, then Discard) drops every staged edit and returns the table to where it was.
| Edits land at once | Commit mode | |
|---|---|---|
| When changes land | As you make them | When you commit |
| Versions made | One per edit | One per commit |
| To back out | Undo, or edit again | Discard the staged edits |
Staged edits exist only on the canvas. Exports, imports into other models, AI assistants and the table's history all read committed data, so nobody outside the model ever reads a half-finished change.
When Mycorr stages edits for you
Some edits are staged even when you didn't turn commit mode on, because landing them at once would surprise you:
- A value that doesn't fit the column's type. Typing text into a Number column, for example, would change the column for everyone. The edit is staged, and when you commit Mycorr asks first: Change "Price" to Text?, with Change to Text or Keep as Number. See Locked and unlocked.
- An edit in a filtered or sorted view that would move rows. Editing the column a view is filtered or sorted by, or adding or deleting rows in such a view, is staged so rows don't jump or vanish while you work. Commit when you're done.
Conflicts
A staged value that a Locked column can't accept is marked as a conflict. A commit with conflicts can't be applied as it stands. Fix it by editing the conflicting cells to values that fit, by unlocking the column's type, or by discarding the staged edits.
While a commit is open
- Columns can't change. Adding, removing, retyping or casting a column is refused until the commit is applied or discarded, because the staged edits are described against the columns as they stand.
- AI assistants wait. An assistant that tries to write to the table is told that someone has uncommitted changes open on it, and should try again later.
Where commits don't apply
Tables whose data lives somewhere else can't be edited, so they have no commit control: imported tables, tables from a connection, and recipe results. Their changes come from their source.
Commits and versions
Committing makes exactly one new table version, however many cells it touched. A commit of twenty edits is one entry in the table's history; the same twenty edits made one at a time are twenty. Either way, you can mark the result with a checkpoint.