borgbackup/borg/testsuite
Marian Beermann a3ee9d2c5f borg recreate: Re-create existing archives.
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
2016-04-10 13:54:44 +02:00
..
__init__.py Make Repository a context manager, use decorators for wrapping withs 2016-04-03 17:14:43 +02:00
archive.py use mock from stdlib, fixes #145 2016-01-24 14:57:48 +01:00
archiver.py borg recreate: Re-create existing archives. 2016-04-10 13:54:44 +02:00
benchmark.py cosmetic source cleanup (flake8) 2016-01-30 21:32:45 +01:00
chunker.py Chunker: fix wrong EOF assumption[1], check for return type[2] 2016-03-31 22:03:17 +02:00
compress.py cosmetic source cleanup (flake8) 2016-01-30 21:32:45 +01:00
crypto.py Replace stdlib hmac with OpenSSL, zero-copy decrypt 2016-03-27 01:12:23 +01:00
hashindex.py misc. hash table tuning 2015-12-01 21:18:58 +01:00
helpers.py borg recreate: Re-create existing archives. 2016-04-10 13:54:44 +02:00
key.py remove conditionals/wrappers, we always have stat nanosecond support on 3.4+ 2016-01-24 15:16:05 +01:00
locking.py cosmetic source cleanup (flake8) 2016-01-30 21:32:45 +01:00
logger.py configure logging via env var, use LazyLogger 2015-11-21 01:14:07 +01:00
lrucache.py minor lrucache test fix 2015-08-15 16:15:10 +02:00
platform.py acls (linux): make tests as they should be 2015-10-19 01:09:58 +02:00
repository.py Merge pull request #830 from enkore/feature/1.0ctxmng 2016-04-03 17:36:38 +02:00
shellpattern.py Add shell-style pattern syntax 2016-01-21 16:07:24 +01:00
upgrader.py Make Repository a context manager, use decorators for wrapping withs 2016-04-03 17:14:43 +02:00
xattr.py xattr tests: ignore security.selinux attribute showing up 2015-09-14 01:26:20 +02:00