mirror of
https://github.com/martinlegend/neogdsync.git
synced 2026-07-22 06:08:29 +00:00
No description
1. Cross-folder rename: handlePush now calls drive.moveFile when op='create' and a cached driveId exists (index.rename already ran). Previously, updateFile only updated content — the Drive file stayed in the old parent folder and was deleted when that folder was trashed. New DriveApi.moveFile uses addParents/removeParents to atomically relocate the file on Drive. 2. handleDelete no longer swallows Drive API errors silently. Failures are now surfaced in result.errors and the index entry is preserved so the next sync can retry, instead of orphaning the Drive file forever. 3. getChanges fields now include 'size' and confirm 'trashed' is requested (aligns compiled JS with existing TS source). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| src | ||
| .gitignore | ||
| esbuild.config.mjs | ||
| eslint.config.mjs | ||
| LICENSE | ||
| main.js | ||
| manifest.json | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| styles.css | ||
| tsconfig.json | ||
| versions.json | ||
NeoGDSync
Lightweight Google Drive sync plugin for Obsidian.
Features
- Smart Sync — auto conflict detection, only syncs changed files
- Force Push — local vault → Google Drive
- Force Pull — Google Drive → local vault
- Conflict handling — saves Drive copy as a conflict file, never overwrites silently
- Path-based index — fast, no full crawl needed after first sync
- Version history — optionally keep file revisions on Drive
- Configurable excludes — glob patterns to skip files/folders
- URI handler —
obsidian://neogdsync?mode=smart|push|pullfor automation
Setup
- Install the plugin
- Go to Settings → NeoGDSync
- Enter your Google OAuth2 Refresh Token
- Enter your Google Drive Vault Root Folder ID (the Drive folder that maps to your vault root)
- Click the ☁ ribbon icon or run a command to sync
Getting a Refresh Token
This plugin uses a standard OAuth2 refresh token with read/write access to Google Drive.
You can obtain one via:
- The Google Drive for Desktop OAuth flow
- Any OAuth2 tool using scope
https://www.googleapis.com/auth/drive
The token is stored locally in your vault's plugin data and never leaves your device except to authenticate with Google.
Commands
| Command | Description |
|---|---|
| Smart Sync | Detect and sync only changed files, with conflict detection |
| Force Push | Upload all local changes to Drive |
| Force Pull | Download all Drive changes to local |
| Rebuild Drive Index | Re-crawl Drive vault folder to rebuild index |
| Show Conflicts | View detected conflicts |
URI Handler
Trigger sync from outside Obsidian (Shortcuts, scripts, etc.):
obsidian://neogdsync?mode=smart
obsidian://neogdsync?mode=push
obsidian://neogdsync?mode=pull
License
MIT