Git-like SVN experience with staging, inline blame, file locking, and sparse checkout. Zero telemetry.
Requires: SVN installed. Windows users: enable Command Line Tools when installing TortoiseSVN.
| Pain Point | Sven Solution |
|---|---|
| SVN has no staging | ✅ Git-like stage → commit workflow |
| "Who wrote this line?" | ✅ Inline blame annotations (GitLens-style) |
| Binary file conflicts | ✅ File locking with visual indicators |
| Giant repos are slow | ✅ Sparse checkout - download only what you need |
| Clunky diff tools | ✅ Beyond Compare, Meld, any external tool |
- File → Open Folder → select folder with
.svn - SVN panel appears in Source Control sidebar
Ctrl+Shift+P→ SVN: Checkout- Enter repository URL
- Choose local folder
1. Make changes → Files appear in "Changes"
2. Click + to stage → Files move to "Staged"
3. Ctrl+Enter → Commit staged files
Stage files before commit. No more accidental commits.
| Action | How |
|---|---|
| Stage | + button or right-click |
| Unstage | - button |
| Commit | Ctrl+Enter |
See who changed each line, when, and why.
- Gutter: Colored revision indicators
- Inline: Author + date at line end
- Hover: Full commit message
Toggle: Ctrl+Shift+P → SVN: Toggle Annotations
Prevent conflicts on binary files (CSVs, images, models).
| Command | Use Case |
|---|---|
| Lock | Claim exclusive edit rights |
| Unlock | Release when done |
| Break Lock | Admin override |
Visual: 🔒 = locked, 🔓 = needs lock (read-only)
Download only specific folders from large repos.
- Open Selective Download panel in SCM sidebar
- Click ☁️ ghost folders to download
- Choose depth: Full, Shallow, Files Only, Empty
Browse commits with file changes, diffs, and filtering.
- B badge = your BASE revision
- ↻ Refresh / ↓ Fetch / ↓↓ Pull
- Filter by author, date, text
Explorer actions auto-convert to SVN commands:
- Rename →
svn move(preserves history) - Delete →
svn delete(proper removal)
Open Settings (Ctrl+,) and search sven.
| Setting | Default | What it does |
|---|---|---|
sven.blame.autoBlame |
true |
Show blame when opening files |
sven.commit.conventionalCommits |
false |
Conventional commit format |
sven.commit.autoUpdate |
none |
Run update before/after commit |
sven.diff.tool |
null |
External diff tool path |
sven.remoteChanges.checkFrequency |
300 |
Remote check interval (seconds) |
sven.sourceControl.hideUnversioned |
false |
Hide unversioned files |
sven.log.length |
50 |
Commits shown in history |
Right-click file → Open Changes with HEAD
- Fix conflict markers in file
- Right-click → Resolve
Ctrl+Shift+P → SVN: Switch Branch
Right-click files → Show Changes (Patch)
Right-click file → Set Line Ending Style (EOL)
"SVN not found"
- Set
sven.pathto full SVN path (e.g.,/usr/bin/svn)
Password prompts loop
- Try
sven.auth.credentialMode:extensionStorage - Then restart extension host
Slow on large repos
- Enable sparse checkout
- Reduce
sven.log.length
Works automatically in Positron:
- Connections pane integration
- Optimized for data science workflows
- All operations local (zero telemetry)
- Full Settings Reference
- Security & Authentication
- Privacy Policy
- Contributing
- Changelog
- Report Issue
Credit: Forked from JohnstonCode/svn-scm