mirror of
https://github.com/borgbackup/borg.git
synced 2026-04-29 01:49:54 -04:00
Use with caution: permanent data loss by specifying incorrect patterns
is easily possible. Make a dry run to make sure you got everything right.
borg recreate has many uses:
- Can selectively remove files/dirs from old archives, e.g. to free
space or purging picturarum biggus dickus from history
- Recompress data
- Rechunkify data, to have upgraded Attic / Borg 0.xx archives deduplicate
with Borg 1.x archives. (Or to experiment with chunker-params for
specific use cases
It is interrupt- and resumable.
Chunks are not freed on-the-fly.
Rationale:
Makes only sense when rechunkifying, but logic on which new chunks to
free what input chunks is complicated and *very* delicate.
Future TODOs:
- Refactor tests using py.test fixtures
-- would require porting ArchiverTestCase to py.test: many changes,
this changeset is already borderline too large.
- Possibly add a --target option to not replace the source archive
-- with the target possibly in another Repo
(better than "cp" due to full integrity checking, and deduplication
at the target)
- Detect and skip (unless --always-recompress) already recompressed chunks
Fixes #787 #686 #630 #70 (and probably some I overlooked)
Also see #757 and #770
|
||
|---|---|---|
| .. | ||
| __init__.py | ||
| archive.py | ||
| archiver.py | ||
| benchmark.py | ||
| chunker.py | ||
| compress.py | ||
| crypto.py | ||
| hashindex.py | ||
| helpers.py | ||
| key.py | ||
| locking.py | ||
| logger.py | ||
| lrucache.py | ||
| platform.py | ||
| repository.py | ||
| shellpattern.py | ||
| upgrader.py | ||
| xattr.py | ||