description: Git-backed revision history integrated into the editor. tags: glossary references:
SilverBullet automatically keeps a full revision history of your Space backed by an git repository.
The revision mode is configured at a per-space level in Dashboard:
Revisions: * commands are hidden.In Managed mode, changes are committed a short while after things go quiet — about 30 seconds by default, and at least every 5 minutes during a long editing session. You can change this per space, under Commit frequency: Responsive (the default), Balanced, or Relaxed. A slower setting means fewer, larger commits.
Commits are attributed to whoever made the change:
${widgets.commandButton("Revision: Create snapshot")} can be used to commit everything outstanding immediately rather than waiting.
A managed space can automatically fetch, merge, and push its Git repository. This is primarily a backup mechanism, it should not be considered for any type of collaboration.
Open the space’s settings and choose Connect repository or Manage Git sync. The connection page separates setup from ordinary space settings:
A connection shares committed history, including older versions of files, rather than only the space's current contents. If both repositories have unrelated histories, combining them requires a separate one-time choice. Conflicting pages are resolved as described below.
Deploy-key mode requires SSH and uses the generated key. If that key is missing or deleted, sync stops instead of trying the server's own identities. HTTPS and local repository paths belong to Use server credentials. Servers that need custom SSH configuration can use that option too.
Edit connection creates a draft. Its URL, credentials, and frequency do not become active until Apply changes. Checking a draft does contact its candidate repository, but does not replace the active remote or merge anything into the space. Cancel discards the draft and preserves the active connection. If the active connection is still running while you edit, the page identifies it.
Pause sync retains the connection and credentials while stopping background Git network work. Resume sync starts it again. Removing a connection preserves the space's files and history. Removing a local deploy key does not revoke the public key at the repository host; remove it there if it should no longer grant access.
The connection is bound to its reviewed destination and branch mapping. If those are changed outside SilverBullet, review the connection before syncing resumes.
The connection overview shows live status and the last successful sync. Members can use Git: View status and Git: Review conflicts; writers can request Git: Sync now. Space History also shows Git sync status. Unknown or unavailable status is not the same as being up to date.
Local changes are pushed after an automatic commit. The revisions Commit frequency setting controls that timing. Check remote changes controls how often SilverBullet checks for other people's commits. Only when this space changes disables periodic remote checks, but a sync triggered by your changes still fetches and merges before pushing. It is not a push-only mode.
Pulled changes reach open editors through the normal file-change mechanism. Network failures show an error and retry with backoff. Authentication or configuration problems require repairing the connection.
When changes cannot merge automatically, Review conflicts lists the affected files. For editable Markdown conflicts, the page presents This space and Remote repository, with choices to keep either side, keep both, or edit manually.
If you edit manually, remove the conflict markers and let the page save. SilverBullet checks the saved text and resolves eligible text conflicts automatically; there is no mandatory Mark resolved step. Partly removed markers keep the conflict open. Resolved files leave the list, and sync resumes when every file has been resolved. The sync status shows whether the resulting push succeeds.
The server only uses marker removal for files that had a supported text conflict. Binary and non-Markdown files require an explicit choice of version. Members can download either original side; writers can keep a side or their edited file. If one side deleted a file and the other edited it, choose whether to keep the edited file or delete it. Unsupported conflict types remain unresolved with an explanation rather than silently choosing a side.
Git sync follows one reviewed local/remote branch mapping. It does not create branches, open pull requests, rebase, or force-push. Ordinary local Git commands remain available, but concurrent changes to a merge or its files may require refreshing the conflict view before applying a choice.
If revisions is enabled, there will be two additional views in the editor:
Whatever has changed since the last commit heads both views as an Uncommitted changes entry — in the space-wide log it opens up to list every file involved. Selecting it shows the change; there is nothing to restore, since it is what is already on disk.