1
0
Fork 0
mirror of https://github.com/borgbackup/borg.git synced 2024-12-27 02:08:54 +00:00
Commit graph

3926 commits

Author SHA1 Message Date
enkore
b32b7b4475 Merge pull request #2431 from enkore/issue/2430
platform.linux: get rid of "resource" module
2017-04-19 11:51:19 +02:00
Marian Beermann
7b519e4769 platform.linux: get rid of "resource" module 2017-04-19 11:31:40 +02:00
enkore
e40c005b88 Merge pull request #2420 from rugk/patch-1
Add --one-file-system note for root backup
2017-04-15 14:27:41 +02:00
rugk
5ddf7e7922 Add --one-file-system note for root backup 2017-04-15 12:38:58 +02:00
Mark Edgington
798127f636 allow excluding parent and including child, fixes #2314
This fixes the problem raised by issue #2314 by requiring that each root
subtree be fully traversed.

The problem occurs when a patterns file excludes a parent directory P later
in the file, but earlier in the file a subdirectory S of P is included.
Because a tree is processed recursively with a depth-first search, P is
processed before S is.  Previously, if P was excluded, then S would not even
be considered.  Now, it is possible to recurse into P nonetheless, while not
adding P (as a directory entry) to the archive.

With this commit, a `-` in a patterns-file will allow an excluded directory
to be searched for matching descendants.  If the old behavior is desired, it
can be achieved by using a `!` in place of the `-`.

The following is a list of specific changes made by this commit:

 * renamed InclExclPattern named-tuple -> CmdTuple (with names 'val' and 'cmd'), since it is used more generally for commands, and not only for representing patterns.
 * represent commands as IECommand enum types (RootPath, PatternStyle, Include, Exclude, ExcludeNoRecurse)
 * archiver: Archiver.build_matcher() paths arg renamed -> include_paths to prevent confusion as to whether the list of paths are to be included or excluded.
 * helpers: PatternMatcher has recurse_dir attribute that is used to communicate whether an excluded dir should be recursed (used by Archiver._process())
 * archiver: Archiver.build_matcher() now only returns a PatternMatcher instance, and not an include_patterns list -- this list is now created and housed within the PatternMatcher instance, and can be accessed from there.
 * moved operation of finding unmatched patterns from Archiver to PatternMatcher.get_unmatched_include_patterns()
 * added / modified some documentation of code
 * renamed _PATTERN_STYLES -> _PATTERN_CLASSES since "style" is ambiguous and this helps clarify that the set contains classes and not instances.
 * have PatternBase subclass instances store whether excluded dirs are to be recursed.  Because PatternBase objs are created corresponding to each +, -, ! command it is necessary to differentiate - from ! within these objects.
 * add test for '!' exclusion rule (which doesn't recurse)
2017-04-12 12:06:18 -04:00
Thomas Waldmann
ca95516540 update CHANGES (master) 2017-04-09 21:20:58 +02:00
TW
9ae4bf023e Merge pull request #2188 from rciorba/hashindex_test
add extra test for the hashindex
2017-04-09 20:47:00 +02:00
TW
92acc46fad Merge pull request #2406 from patrickgoering/master
hardlink issue
2017-04-08 19:00:58 +02:00
Patrick Goering
f64f432e51 catch exception for os.link when hardlinks are not supported 2017-04-08 17:10:02 +02:00
Radu Ciorba
9f31dba7b5 cleanup the test and add more checks 2017-04-07 16:00:34 +03:00
Radu Ciorba
8c2064cc5a add extra test for the hashindex
Insert a few keys, delete some of them, check we still have
the values we expect, check the deleted ones aren't there.
2017-04-07 16:00:34 +03:00
enkore
2c1607caa6 Merge pull request #2394 from enkore/f/recreate-archive-expansion
recreate: expand placeholders
2017-04-06 11:38:47 +02:00
Marian Beermann
03ed4d31ca recreate: expand placeholders 2017-04-06 11:37:55 +02:00
enkore
03457e9bb7 Merge pull request #2389 from ThomasWaldmann/rename-with-placeholders
borg rename: expand placeholders, fixes #2386
2017-04-06 09:06:46 +02:00
Thomas Waldmann
c7256abd84 borg rename: expand placeholders, fixes #2386 2017-04-06 01:03:24 +02:00
enkore
736a815972 Merge pull request #2342 from ThomasWaldmann/generic-hardlinks
Generic hardlinks
2017-04-05 14:34:29 +02:00
enkore
7255e3b298 Merge pull request #2387 from enkore/f/placeholders-internals
placeholders: deny access to internals and other unspecified stuff
2017-04-05 14:10:30 +02:00
enkore
9a1c1e90c1 Merge pull request #2375 from enkore/buhdf
BORG_HOSTNAME_IS_UNIQUE=yes by default.
2017-04-05 14:09:58 +02:00
Thomas Waldmann
155f38c233 remove comment about strange hardlink_masters term
(maybe revisit this later, this is not in scope of the generic hardlinks refactor)
2017-04-05 13:56:57 +02:00
Marian Beermann
cc24fa2064 format_line: whitelist instead of checking against blacklist 2017-04-05 13:51:20 +02:00
Thomas Waldmann
8f769a9b24 implement and use hardlinkable() helper 2017-04-05 13:38:27 +02:00
Thomas Waldmann
cb86bda413 extract: implement extract_helper context manager
Most code of the CM is just moved 1:1 from the regular file block.

Use the CM for regular files, FIFOs and devices, but not for:
- directories (can not have hardlinks)
- symlinks (we can not support hardlinked symlinks)
2017-04-05 13:36:09 +02:00
Thomas Waldmann
cda7465038 extract: indent code, no semantics change
prepare for a extract_helper context manager

(some changes may seem superfluous, but see the following changesets)
2017-04-05 13:36:00 +02:00
Marian Beermann
49f6128d1c docs: serve: env vars in original commands are ignored 2017-04-05 13:34:50 +02:00
Thomas Waldmann
3cc1cdd2ed extract: refactor hardlinks related code
prepare for a extract_helper context manager

(some changes may seem superfluous, but see the following changesets)
2017-04-05 13:03:58 +02:00
Thomas Waldmann
32c6e3ad95 docs: tell what kind of hardlinks we support 2017-04-05 13:03:58 +02:00
Thomas Waldmann
23cc679617 no hardlinking for directories and symlinks
- nlink > 1 for dirs does not mean hardlinking
  (at least not everywhere, wondering how apple does it)
- we can not archive hardlinked symlinks due to item.source dual-use,
  see issue #2343.

likely nobody uses this anyway.
2017-04-05 13:03:53 +02:00
Thomas Waldmann
1f6dc55eab simplify char/block device file dispatching 2017-04-05 13:01:04 +02:00
Thomas Waldmann
9478e8abd0 support hardlinks via create_helper context manager
also: reduce code duplication
2017-04-05 12:58:25 +02:00
Thomas Waldmann
e5d094d0ce use same finalizing code for hardlink masters and slaves
hardlink slaves get a precomputed size attribute now.
2017-04-05 12:31:15 +02:00
Thomas Waldmann
a206a85890 indent block, no semantics change 2017-04-05 12:31:11 +02:00
Thomas Waldmann
66f4cd1a29 minor refactor for regular file hardlink processing 2017-04-05 12:24:08 +02:00
enkore
7a80b1802f Merge pull request #2383 from enkore/f/recreaterecompressargsthingsthatareugly
recreate: add --recompress flag, avoid weirdo use of args.compression
2017-04-05 12:23:59 +02:00
Marian Beermann
707316b0ea placeholders: document escaping 2017-04-05 00:11:46 +02:00
Marian Beermann
1bd381a13a format_line: deny conversions (!r, !s, !a) 2017-04-05 00:09:32 +02:00
Marian Beermann
e2e172c74f format_line: clearer error message for unrecognized placeholder 2017-04-05 00:09:32 +02:00
Marian Beermann
1924e33ef5 format_line: deny access to internal objects 2017-04-05 00:09:31 +02:00
Marian Beermann
dcfbd39125 recreate: unify --always-recompress and --recompress 2017-04-04 18:34:37 +02:00
enkore
7496569ccf Merge pull request #2374 from enkore/issue/2353
serve: fix forced command lines containing BORG_ env vars
2017-04-04 16:27:33 +02:00
Marian Beermann
88dfb3e9c5 serve: fix forced command lines containing BORG_ env vars 2017-04-04 15:25:40 +02:00
Marian Beermann
b2953357ed recreate: add --recompress flag, avoid weirdo use of args.compression 2017-04-04 15:11:15 +02:00
enkore
f878678b0c Merge pull request #2364 from enkore/f/autocomp
Refactor compression decision stuff
2017-04-04 00:28:03 +02:00
Marian Beermann
2ff75d58f2 remove Chunk() 2017-04-04 00:16:15 +02:00
Marian Beermann
69fb9bd403 remove --compression-from 2017-04-04 00:16:15 +02:00
Marian Beermann
929f2760dd change global compression default to lz4 as well
To be consistent with --compression defaults.
2017-04-04 00:16:15 +02:00
Marian Beermann
0847c3f9a5 Unify ComprSpec and CompressionSpec; don't instanciate Compressors right away 2017-04-04 00:16:14 +02:00
Marian Beermann
d1826cca92 Rename CompressionDecider1 -> CompressionDecider 2017-04-03 21:31:28 +02:00
Marian Beermann
0c7410104c Rename Chunk.meta[compress] => Chunk.meta[compressor] 2017-04-03 21:31:28 +02:00
Marian Beermann
88647595ac compress: docs 2017-04-03 21:31:28 +02:00
Marian Beermann
5a20fc08de key: compress(chunk) return data 2017-04-03 21:31:28 +02:00