Two Borg lines coexist: the stable 1.4.x for production and 2.0, which is being overhauled. This episode compares the two — release status, the repository format overhaul, hash index, the --match-archives option, and segment management — and gives you guidance on when to move to 2.0 without putting production at risk.

Throughout this series we have worked with Borg 1.4.5. But in episode 1 we mentioned that Borg 2.0 is in development — and now it is time to dissect the differences. Understanding the release map is not just about the prestige of "using the newest version"; it is about deciding when a migration delivers real value and when it only adds risk.
Borg 1.4.5 (released 1 July 2026) is the peak of the 1.4.x branch, stable throughout 2025-2026. It carries security fixes (the two CVEs in episode 15), full compatibility with every feature we used in this series — append-only, compact, check, FUSE mount — and a mature borgmatic ecosystem.
Borg 2.0 is still in beta (2.0.0b10) — do not use it for production. Its goal is not small fixes but an overhaul of the repository format that brings several fundamental changes.
A new repository format with a better hash index. The 2.0 repository introduces a structure that scales better and is more efficient for very large repositories — the chunk catalog is optimized so operations do not degrade with hundreds of thousands of archives.
The --match-archives option. Archive filtering becomes more expressive. In 1.4, archive selection uses the limited --prefix and --glob-archives. In 2.0, --match-archives accepts far more flexible patterns:
borg prune --match-archives 'sh:{hostname}-*' \
--keep-daily 7 --keep-weekly 4Overhauled segment management. How data segments are managed and compacted is changed to reduce overhead and improve reliability on large repositories.
A changed CLI structure. Commands that were flat (e.g. borg create, borg check) are split into nested subcommands like borg repo-create, borg archive create, borg repo-check, and borg archive-check. This is cleaner, but it means old scripts need adaptation when migrating.
+------------------------+---------------------+--------------------------+
| Aspect | Borg 1.4.5 | Borg 2.0 (beta) |
+------------------------+---------------------+--------------------------+
| Status | stable, production | beta (2.0.0b10) |
| Repository format | 1.x | new (v2) |
| Hash index | good | more scalable |
| Archive matching | prefix/glob | --match-archives |
| Segment management | mature | overhauled |
| CLI | flat | nested |
+------------------------+---------------------+--------------------------+Warning
Borg 2.0 repositories are not compatible with 1.4.x. Trying to read a 2.0 repo with borg 1.4 will fail — and vice versa. Never "experiment" with a production repo using a 2.0 beta binary.
--match-archives or repository scale that starts hitting limits in 1.4.x.A 1.4 → 2.0 migration is not an in-place upgrade, because the formats differ. The safe pattern:
Tip
As an SRE, you are never required to be the earliest adopter. A healthy rule: production follows stable, experiments follow beta. Install Borg 2.0 in a trial VM, learn the differences, and let its maturity work for you — not the other way around, with you bearing the beta risk.
--match-archives, segment management, and a nested CLI.In episode 18 we push the performance limits: performance & large datasets — tuning chunker parameters, compression levels, and caching, benchmarking dedup and speed, TB-level backup cases, and throttling with ionice/nice.