Skip to content

What is obsync's commit and push cadence? #5

Description

@andyroberts2

Part of #1

Question

What is obsync's commit and push cadence?

This is the core design question of the whole project. The vault must not drift far from the remote, but obsync must not produce a commit per keystroke — the history has to stay readable and the push rate reasonable.

To decide:

  • How local change is detected. Filesystem watching (inotify/fanotify) vs. periodic git status polling, and what each costs on a large vault. Note that ignis already runs a chokidar watcher on the same tree.
  • What "the user has stopped typing" means. Quiescence/debounce window, and whether there is a maximum wait so a continuously-edited vault still gets committed.
  • Whether commit rate and push rate are the same knob. Committing often and pushing on a slower cadence is a real option, and keeps history granular without hammering the remote.
  • Batching. One commit per settle window covering everything that changed, vs. per-file commits.
  • Commit message format. obsidian-git defaults to vault backup: {{date}}; a summary of what changed is more useful but more work.
  • Bounds. Behaviour on a huge burst (bulk import, plugin install, a paste of 500 files).

Prior art in docs/research/: obsidian-git's real defaults, and kubernetes/git-sync's --period / --sync-timeout / --max-failures model.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions