LLLLAAAA22 downloadsCompare local notes with a WebDAV folder and inspect content conflicts without changing your files.
Compare notes and attachments in your Obsidian vault with a WebDAV folder by their content. Inspect conflicts and use a conservative line-level three-way merge when a common version exists. The local Markdown top-level updated field stays local; other properties and content are compared.
0.5.0 is experimental. External WebDAV connections provide read-only previews. Uploads, downloads, applying conflict choices and recovery are only enabled for the bundled localhost simulation. Nothing connects or syncs automatically. The plugin has a public community listing; see its current scorecard for automated review results.
Version 0.5.0 adds a Test connection action in settings, a compact source-control sidebar, and a read-only comparison tab in the main editor. Quick conflict previews are available on demand.
updated field.Requires Obsidian desktop 1.14.4+. App testing has been performed on macOS only; mobile is unsupported. Start in an isolated test vault.
main.js, manifest.json and styles.css from the same GitHub Release, and place them in <your-config-directory>/plugins/vault-content-sync/ in that test vault.WebDAV, username and password.Verification reads all in-scope file contents, so large folders take time. Redirects are not followed. URLs with embedded credentials, query parameters or fragments are rejected and not saved. Re-enter the password after disabling the plugin or restarting Obsidian.
The plugin contacts only your configured WebDAV endpoint to list and read files. It has no telemetry, advertisements or project-operated service. HTTP is accepted only for localhost testing; external connections require HTTPS. HTTP Basic authentication uses base64 encoding for the username/password header, not to hide executable code. The bundled YAML parser also includes base64 handling for YAML binary values; those values are data, not scripts.
The endpoint, username and mock-mode preference are saved using Obsidian's plugin settings API. The password stays in memory for the plugin session and is not saved. Remote responses are treated as data, never executed as code.
This desktop plugin uses Node.js filesystem APIs rather than only the Vault API: streaming checksums, exclusive creates, hard-link preservation and disk flushes support exact bytes and interrupted-operation recovery. Those APIs technically permit system-wide file access. Normal plugin operations use the current vault; configured and default exclusion folders and symlinks are skipped. It does not scan other vaults. Development tools accept explicitly specified test paths; use synthetic data under runtime/ only.
The actual Obsidian configuration directory comes from Vault.configDir and is excluded locally and remotely, including custom locations. .obsidian remains additionally excluded to protect default/configuration folders copied from other devices. State format 2 and the .plain-sync/ directory are unchanged; original versions and checkpoints are not automatically deleted. Format 1 requires explicit migration.
External conditional-write and concurrency guarantees have not been verified, so external writes remain disabled. Other limitations include YAML field-level merging, character-level merging, moved-block recognition, directory rename recognition and automatic history cleanup.
Node.js 24+ and pnpm 10.17.0:
pnpm install --frozen-lockfile
pnpm check:release
pnpm test
pnpm demo
pnpm e2e
pnpm check:release runs formatting, type checking, community lint, builds, module boundary checks and release checks. pnpm e2e requires macOS and Obsidian; it launches a separate profile and synthetic vault under runtime/. It does not install into a daily-use vault.
pnpm build outputs dist/vault-content-sync/. Releases attach only the three files Obsidian installs. Full applicable licenses and development notices are embedded in main.js; SHA-256 checksums are in the release notes. A manually triggered GitHub Actions build provides artifact attestations; compare the checksums and verify with gh attestation verify main.js --repo LLLLAAAA2333/vault-content-sync (also applicable to the other two files).
MIT License. Applicable dependency licenses and the project's MDSync development origins are documented in THIRD_PARTY_NOTICES.md. Replacing implementations or starting a new repository does not erase that history or establish community-policy eligibility by itself.