Format strings
Each project's version scheme is defined by a single format string.
The Settings dialog shows a live preview as you type, and a ? button
links here.
| Token | Meaning | Example result |
| [sem] | SemVer shorthand — expands to [{#major}.{#minor}.{#patch}] | 1.2.3 |
| {#name} | Numeric counter — a bump button increments it by 1 | {#major}.{#minor} → 1.0 |
| {YYYY} {YY} {MM} {DD} | Date tokens — auto-filled on every refresh, no button generated | {YYYY}.{MM}.{#build} → 2026.03.0 |
| {val1|val2|val3} | Inline list — bump button cycles through the values | {alpha|beta|prod} → alpha |
| {listname} | Named list — values defined globally under Settings → Lists | {stage} |
| [*N] | Free-text field, max N characters — one bump button | [*8] |
| […] | Reset group — bumping any token resets all subsequent tokens in the group to their default (0 or first list value) | [{#major}.{#minor}.{#patch}] |
Examples:
| Format string | Example version | Bump buttons |
| [sem] | 1.2.3 | major+ · minor+ · patch+ |
| {YYYY}.{MM}.{#build} | 2026.03.47 | build+ |
| [{#major}.{#minor}]-{alpha|beta|prod} | 1.0-alpha | major+ · minor+ · alpha|beta|prod+ |
| {YYYY}.[{#major}.{#minor}.{#patch}] | 2026.1.0.0 | major+ · minor+ · patch+ |
Old-style settings (semver, calver, sequential) are
automatically migrated on first load — no changes to your settings.json required.
Git pre-commit hook
VerBump can act as a pre-commit guard: if any source file is newer than
VERSION, the commit is blocked and VerBump opens automatically so you can
bump before anything goes out.
Setup: open Settings, select a project, click Install Git Hook.
VerBump writes a small script into .git/hooks/pre-commit — existing hook content
is preserved. Remove it the same way with Remove Git Hook.
The hook calls VerBump with --check. You can also invoke it manually:
VerBump.exe --check # check project in current directory
VerBump.exe --check C:\my\project
Exit code 0 = VERSION is current · 1 = stale (commit blocked).
The hook dialog shows only the stale project (not all projects in your settings).
Three buttons are available:
- ✓ Bump & Commit — bump the version, then let the commit proceed.
- ↷ Skip This Time — let this commit through without bumping
(useful for WIP commits or doc-only changes).
- ✗ Block Commit — abort the commit (exit 1).
Corporate deployments: to enforce bumping on every commit and remove
the Skip This Time option, create
C:\ProgramData\VerBump\policy.json:
{ "allowHookBypass": false }
This file is read at machine level; users cannot override it. Deploy it via installer
or Group Policy as needed. When allowHookBypass is false,
only Bump & Commit and Block Commit are shown.
The hook fits any commit style.
Click Skip This Time for WIP commits or doc-only changes — no need
for git commit --no-verify. The bump prompt appears whenever a source
file is newer than the current VERSION, as a gentle reminder rather than an
unconditional blocker. Teams who need to enforce bumping on every commit can
disable Skip This Time via the policy file above.
Ignore rules
VerBump scans project directories to detect stale versions: if source files are newer than VERSION,
or (for git repos) if files changed since the last commit, the project is marked as stale.
You can exclude directories and file patterns globally or per project to fine-tune this detection.
Global ignore — set in the Settings dialog, applies to all projects:
Dirs: .git node_modules bin obj dist
Files: *.bak *.tmp *.log
Per-project override — add entries in the Entry section of Settings.
Prefix an entry with ! to re-include something excluded globally:
Dirs: build ← also exclude 'build' for this project
!bin ← re-include 'bin' (overrides global exclusion)