mirror of
https://github.com/borgbackup/borg.git
synced 2026-03-09 01:40:37 -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
|
||
|---|---|---|
| .. | ||
| testsuite | ||
| __init__.py | ||
| __main__.py | ||
| _chunker.c | ||
| _hashindex.c | ||
| archive.py | ||
| archiver.py | ||
| cache.py | ||
| chunker.pyx | ||
| compress.pyx | ||
| crypto.pyx | ||
| fuse.py | ||
| hash_sizes.py | ||
| hashindex.pyx | ||
| helpers.py | ||
| key.py | ||
| locking.py | ||
| logger.py | ||
| lrucache.py | ||
| platform.py | ||
| platform_darwin.pyx | ||
| platform_freebsd.pyx | ||
| platform_linux.pyx | ||
| remote.py | ||
| repository.py | ||
| shellpattern.py | ||
| upgrader.py | ||
| xattr.py | ||