Commit graph

650 commits

Author SHA1 Message Date
Martin Hostettler
193e8bcaef Add tests for mandatory repository feature flags. 2017-06-09 23:20:07 +02:00
Martin Hostettler
fd0250d34a Add minimal version of in repository mandatory feature flags.
This should allow us to make sure older borg versions can be cleanly
prevented from doing operations that are no longer safe because of
repository format evolution. This allows more fine grained control than
just incrementing the manifest version. So for example a change that
still allows new archives to be created but would corrupt the repository
when an old version tries to delete an archive or check the repository
would add the new feature to the check and delete set but leave it out
of the write set.

This is somewhat inspired by ext{2,3,4} which uses sets for
compat (everything except fsck), ro-compat (may only be accessed
read-only by older versions) and features (refuse all access).
2017-06-09 23:13:31 +02:00
Andrea Gelmini
e4247cc0d2 Fix typos 2017-06-09 16:49:30 +02:00
TW
eeaeaf9e12 Merge pull request #2634 from ThomasWaldmann/cygwin
enable remote tests on cygwin
2017-06-09 00:08:01 +02:00
Marian Beermann
b75c214af5 hashindex: Cython defines PY_SSIZE_T_CLEAN 2017-06-08 15:16:52 +02:00
Thomas Waldmann
4766d66875 enable remote tests on cygwin
the cygwin issue that caused these tests to break was fixed in cygwin
at least since cygwin 2.8.0 (maybe even since 2.7.0).

also added a comment to our workaround (os_write wrapper, that is needed
still for people running older cygwin versions) that it can be removed
when cygwin 2.8.0 is considered ancient (and everybody has upgraded to
some fixed version).
2017-06-08 02:23:57 +02:00
enkore
19c8adb109 Merge pull request #2632 from enkore/docs/nanorst
nanorst for --help
2017-06-08 02:00:55 +02:00
Marian Beermann
5b9c34f523 borg.algorithms definition 2017-06-07 23:53:19 +02:00
Marian Beermann
3f8a0221ee Revert "move chunker to borg.algorithms"
This reverts commit 956b50b29c.

# Conflicts:
#	setup.py
#	src/borg/archive.py
#	src/borg/helpers.py
2017-06-07 23:51:42 +02:00
Marian Beermann
1cf031045c nanorst for --help 2017-06-07 18:16:11 +02:00
TW
af979c2b2a Merge pull request #2617 from ThomasWaldmann/fix-parse-version
fix parse_version, add tests, fixes #2556
2017-06-07 02:04:25 +02:00
Thomas Waldmann
a7e8e8ccd9 fix parse_version, add tests, fixes #2556 2017-06-07 01:15:58 +02:00
Marian Beermann
1135114520 helpers: truncate_and_unlink doc 2017-06-06 19:52:08 +02:00
Marian Beermann
ed0a5c798f platform.SaveFile: truncate_and_unlink temporary
SaveFile is typically used for small files where this is not
necessary. The sole exception is the files cache.
2017-06-06 18:13:20 +02:00
Marian Beermann
95064cd241 repository: truncate segments before unlinking 2017-06-06 17:21:45 +02:00
enkore
68b61acffd Merge pull request #2619 from ThomasWaldmann/remove-attic-dependency
remove attic dependency of the tests, fixes #2505
2017-06-06 11:43:52 +02:00
Thomas Waldmann
f5d2e67129 whitespace changes by coala 2017-06-06 04:46:15 +02:00
Thomas Waldmann
fed5873e29 remove attic dependency of the tests, fixes #2505
attic.tar.gz contains a repo + corresponding keyfile - all the
upgrader module tests need.

.tar.gz because the .tar was 20x bigger.
2017-06-06 04:26:48 +02:00
TW
88669611b1 Merge pull request #2615 from ThomasWaldmann/suppress-timestamp-future-errmsg
tests: suppress tar's future timestamp warning
2017-06-05 16:59:12 +02:00
Thomas Waldmann
4e6c56538a test: suppress tar's future timestamp warning
in this case, it is expected as we archived a file with such a ts.
2017-06-05 15:43:13 +02:00
Marian Beermann
909f099b1a algorithms.checksums: work around GCC 4.4 bug by disabling CLMUL
Also disabling this code path for 4.5; 4.6 was tested iirc.
2017-06-05 15:07:49 +02:00
TW
50bcd7843d recreate: keep timestamps as in original archive, fixes #2384 (#2607)
the timestamps of the recreated archive (in the archive metadata and
also in the manifest) are now as they were for the original archive.

they are important metadata about the archive contents and should
therefore be kept "as is".

note: when using -v --stats, the timestamps shown there for recreate
      are about the recreate start/end/duration.
2017-06-05 09:59:17 +02:00
enkore
60811fc2ce Merge pull request #2593 from enkore/issue/2384.1
recreate: if single archive is not processed, exit 2
2017-06-04 23:01:20 +02:00
Thomas Waldmann
ffcf6b76b6 DEFAULT_SEGMENTS_PER_DIR = 1000
prettier increments for the directory names.
2017-06-03 21:54:41 +02:00
TW
a2d08e3186 Merge pull request #2575 from edgimar/master
patterns: don't recurse with ! / --exclude for pf:, fixes #2509
2017-06-03 21:47:11 +02:00
Mark Edgington
fd0215c3c2 patterns: don't recurse with !/--exclude for path-prefix (pf:)
Fixes issue #2509
2017-06-03 12:13:32 -04:00
Marian Beermann
8ad309ae2a recreate: if single archive is not processed, exit 2 2017-06-03 15:47:01 +02:00
Marian Beermann
8dfe2a8080 remote: show path in PathNotAllowed
not 100 % sure whether "if old_server" is required, so let's play it safe.
1.0 -> 1.1 server is no problem.
2017-06-03 15:07:08 +02:00
Marian Beermann
07fbba4ee9 serve: add --restrict-to-repository 2017-06-03 15:07:08 +02:00
Marian Beermann
54e023c75a repository: add complementary index corruption test 2017-06-02 21:44:45 +02:00
Marian Beermann
2e067a7ae8 repository: add refcount corruption test 2017-06-02 21:44:45 +02:00
Marian Beermann
f61ee038d0 repository: checksum index and hints 2017-06-02 21:44:45 +02:00
Marian Beermann
6c91a750d1 algorithms: rename crc32 to checksums 2017-06-01 21:26:42 +02:00
Marian Beermann
0221e31058 file_integrity: use xxh64 2017-06-01 21:26:42 +02:00
enkore
23d591c1c3 Merge pull request #2565 from enkore/issue/2517
Implement storage quotas
2017-06-01 14:39:17 +02:00
Marian Beermann
bcf4b4492b testsuite: add test for parse_storage_quota 2017-05-31 20:28:17 +02:00
Marian Beermann
4e6a771ee7 BORG_PASSCOMMAND: use same cmd-string splitting as BORG_RSH 2017-05-31 19:41:17 +02:00
enkore
349a4ade7c Merge pull request #2568 from enkore/issue/1101.integration.cache
1101.integration.cache
2017-05-31 19:34:43 +02:00
TuXicc
578b76af3a Added BORG_PASSCOMMAND environment variable (#2573) 2017-05-31 19:25:21 +02:00
Marian Beermann
f8b48dc8d7 remote: propagate Error.traceback correctly 2017-05-31 18:48:48 +02:00
Marian Beermann
4edf77788d Implement storage quotas 2017-05-31 18:36:03 +02:00
Marian Beermann
9032aa062b testsuite: simplify ArchiverCorruptionTestCase 2017-05-31 18:08:20 +02:00
Marian Beermann
0a5d9b6f7c cache sync: close archive chunks file before renaming 2017-05-31 18:06:28 +02:00
Marian Beermann
d35d388d9c cache integrity: handle interference from old versions 2017-05-25 17:44:01 +02:00
Marian Beermann
50ac9d914d testsuite: add ArchiverCorruptionTestCase 2017-05-25 17:44:01 +02:00
Marian Beermann
83bca02a4e file_integrity: hash_part: mix length into state 2017-05-25 17:44:01 +02:00
Marian Beermann
d463dd89aa hashindex: read/write: use hash_part for HashHeader 2017-05-25 17:44:01 +02:00
Marian Beermann
f59affe585 cache: fix possible printf issue with archive names in sync 2017-05-25 17:44:01 +02:00
Marian Beermann
addd7addfe cache: chunks.archive.d: autofix corruption 2017-05-25 17:44:01 +02:00
Marian Beermann
1dfe693003 cache: integrity checking in archive.chunks.d 2017-05-25 16:28:46 +02:00