Commit Graph

1763 Commits

Author SHA1 Message Date
Thomas Waldmann 5ec2a3a49b use the RepositoryCache context manager also in fuse code 2016-01-17 00:30:00 +01:00
Thomas Waldmann 4d73f3cdb9 implement and use context manager for RepositoryCache, fixes #548 2016-01-17 00:30:00 +01:00
Thomas Waldmann 2f05e4add9 use the usual commandline arguments order for borg prune examples, fixes #560
borg prune <options> <repo>
2016-01-16 20:57:22 +01:00
Thomas Waldmann e68b800d01 remove unused "repair" rpc method
there is no such method in the code.
we use "check" method to repair the repo, so maybe this was left over
from a time when repair was separate from check.
2016-01-16 18:58:52 +01:00
TW c667d330b4 Merge pull request #561 from ThomasWaldmann/fix-locking
fix locking, partial fix for #502
2016-01-16 18:46:13 +01:00
Thomas Waldmann 845d2144cb fix locking, partial fix for #502
the problem was that the borg process removed its own shared lock when upgrading it to an exclusive lock.
this is fine if we get the exclusive lock, but if we don't, we must re-add our shared lock.

this fixes the KeyError in locking.py:217
2016-01-16 18:03:58 +01:00
TW f35ba0b577 Merge pull request #559 from ThomasWaldmann/metastream-chunker
finer chunker granularity for items metadata stream, fixes #547, fixes #487
2016-01-15 22:42:20 +01:00
TW d565274207 Merge pull request #558 from xor-gate/doc-deployment
Docs/deployment: Fixes on incorrect markup
2016-01-15 21:51:04 +01:00
TW d248a7d537 Merge pull request #557 from hansmi/pattern-cleanup
Rename pattern classes and refactor tests
2016-01-15 21:50:04 +01:00
Thomas Waldmann 888e078382 use finer chunker granularity for items metadata stream, fixes #547, fixes #487
the items metadata stream is usually not that big (compared to the file content data) -
it is just file and dir names and other metadata.

if we use too rough granularity there (and big minimum chunk size), we usually will get no deduplication.
2016-01-15 20:56:21 +01:00
TW b8789f7bde Merge pull request #552 from ThomasWaldmann/hashtable-resizing
Hashtable resizing
2016-01-15 20:54:28 +01:00
Jerry Jacobs a1e1ce552c Update README.md with doc|stable shield, minor markup fixes on docs/deployment.rst 2016-01-15 20:02:42 +01:00
Thomas Waldmann ac9d2964a0 exclude hash_sizes.py from coverage testing
this is a one-time tool for developers to generate a value table for borg.
the tool is not used at borg runtime.
2016-01-15 19:52:19 +01:00
TW 37179451bf Merge pull request #556 from LocutusOfBorg/fix-ppa
Move to my ppa and add Trusty/Vivid packages
2016-01-15 19:25:16 +01:00
Michael Hanselmann 3a39ddbd83 Rename pattern classes for consistency
The class names “IncludePattern” and “ExcludePattern” may have been
appropriate when they were the only styles. With the recent addition of
regular expression support and with at least one more style being added
in forthcoming changes these classes should be renamed to be more
descriptive. “ExcludeRegex” is also renamed to match the new names.
2016-01-15 17:16:25 +01:00
Michael Hanselmann 2c7ab8595d Refactor Unicode pattern tests
The unit tests for Unicode in path patterns contained a lot of
unnecessary duplication. One set of duplication was for Mac OS X (also
known as Darwin) as it normalizes Unicode in paths to NFD. Then each
test case was repeated for every type of pattern.

With this change the tests become parametrized using py.test. The
duplicated code has been removed.
2016-01-15 17:16:25 +01:00
Gianfranco Costamagna e644dae793 Move to my ppa and add Trusty/Vivid packages 2016-01-15 13:55:04 +01:00
Thomas Waldmann d08c51bdfc add gource video to resources docs, fixes #507 2016-01-15 10:34:05 +01:00
TW a1b2a834a6 Merge pull request #555 from dannyedel/fix-spelling-errors
docs: Correct small typos in changes and usage
2016-01-15 10:08:53 +01:00
Danny Edel 6cedfbede9 Correct small typos in changes and usage 2016-01-15 09:24:00 +01:00
TW b6c47bad23 Merge pull request #554 from ThomasWaldmann/update-docs
update docs / make them more clear about -v
2016-01-14 22:02:12 +01:00
TW 1f795551f9 Merge pull request #546 from ThomasWaldmann/simple-man-page
sphinx configuration: fix to create a simple man page from usage docs
2016-01-14 19:37:04 +01:00
Thomas Waldmann 8ce84cab30 update docs / make them more clear about -v 2016-01-14 19:34:07 +01:00
TW 34142adcb0 Merge pull request #553 from ThomasWaldmann/list-option
add --list option for borg create
2016-01-14 19:33:43 +01:00
Thomas Waldmann 96f88a29d2 add --list option for borg create
like --stats enables statistics output, --list enables the file/dirs list output.
2016-01-14 18:57:05 +01:00
TW fa054d0f2e Merge pull request #551 from hansmi/upgrade-spelling
Capitalization fixes for upgrade help epilog
2016-01-14 17:16:24 +01:00
Michael Hanselmann b6d0ee7c13 Capitalization fixes for upgrade help epilog 2016-01-14 17:04:34 +01:00
Thomas Waldmann 5cb47cbedd hashindex: explain hash_sizes 2016-01-14 14:39:59 +01:00
Thomas Waldmann 083f5e31ef hashindex: fix upper limit
use num_buckets (== fully use what we currently have allocated)
2016-01-14 14:39:59 +01:00
Thomas Waldmann 09665805e8 move func defs to avoid implicit declaration compiler warning 2016-01-14 14:39:59 +01:00
Thomas Waldmann 91cde721b4 hashindex: minor refactor
- rename BUCKET_(LOWER|UPPER)_LIMIT to HASH_(MIN|MAX)_LOAD
   as this value is usually called the hash table's minimum/maximum load factor.
- remove MAX_BUCKET_SIZE (not used)
- regroup/reorder definitions
2016-01-14 14:39:59 +01:00
Thomas Waldmann d88df3edc6 hashtable size follows a growth policy, fixes #527
also: refactor / dedupe some code into functions
2016-01-14 14:39:59 +01:00
TW 89169c3f87 Merge pull request #542 from ThomasWaldmann/fix-stats-logging
log stats consistently, fixes #526
2016-01-14 14:33:53 +01:00
TW 95fd2248f6 Merge pull request #497 from hansmi/master
Implement exclusions using regular expressions
2016-01-14 14:32:34 +01:00
TW 3a18248d08 Merge pull request #529 from xor-gate/doc-deployment
Docs: deployment example
2016-01-13 22:39:30 +01:00
TW d6c5e4de55 Merge pull request #550 from anarcat/install
expand install docs table
2016-01-13 22:36:33 +01:00
Antoine Beaupré 77238d175c fix table syntax and links 2016-01-13 15:23:34 -05:00
Antoine Beaupré cd14b766ca add NixOS 2016-01-13 15:18:19 -05:00
Antoine Beaupré 178b9dc151 sort OS list alphabetically 2016-01-13 15:18:03 -05:00
Antoine Beaupré 3e434ce6fb mention debian testing, ubuntu backport 2016-01-13 15:17:54 -05:00
Jerry Jacobs a7c1419b6e docs/deployment: Add borg storage server setup example 2016-01-13 21:06:03 +01:00
Michael Hanselmann 2369b8a0f2 Strip whitespace when loading exclusions from file
Patterns to exclude files can be loaded from a text file using the
“--exclude-from” option. Whitespace at the beginning or end of lines was
not stripped. Indented comments would be interpreted as a pattern and
a misplaced space at the end of a line--some text editors don't strip
them--could cause an exclusion pattern to not match as desired. With the
recent addition of regular expression support for exclusions the spaces
can be matched if necessary (“^\s” or “\s$”), though it's highly
unlikely that there are many paths deliberately starting or ending with
whitespace.
2016-01-13 17:39:22 +01:00
Michael Hanselmann 2bafece093 Implement exclusions using regular expressions
The existing option to exclude files and directories, “--exclude”, is
implemented using fnmatch[1]. fnmatch matches the slash (“/”) with “*”
and thus makes it impossible to write patterns where a directory with
a given name should be excluded at a specific depth in the directory
hierarchy, but not anywhere else. Consider this structure:

  home/
  home/aaa
  home/aaa/.thumbnails
  home/user
  home/user/img
  home/user/img/.thumbnails

fnmatch incorrectly excludes “home/user/img/.thumbnails” with a pattern
of “home/*/.thumbnails” when the intention is to exclude “.thumbnails”
in all home directories while retaining directories with the same name
in all other locations.

With this change regular expressions are introduced as an additional
pattern syntax. The syntax is selected using a prefix on “--exclude”'s
value. “re:” is for regular expression and “fm:”, the default, selects
fnmatch. Selecting the syntax is necessary when regular expressions are
desired or when the desired fnmatch pattern starts with two alphanumeric
characters followed by a colon (i.e. “aa:something/*”). The exclusion
described above can be implemented as follows:

  --exclude 're:^home/[^/]+/\.thumbnails$'

The “--exclude-from” option permits loading exclusions from a text file
where the same prefixes can now be used, e.g. “re:\.tmp$”.

The documentation has been extended and now not only describes the two
pattern styles, but also the file format supported by “--exclude-from”.

This change has been discussed in issue #43 and in change request #497.

[1] https://docs.python.org/3/library/fnmatch.html

Signed-off-by: Michael Hanselmann <public@hansmi.ch>
2016-01-13 17:39:19 +01:00
Michael Hanselmann 93c9c49250 Reduce code duplication in inclusion/exclusion pattern logic
The two classes for applying inclusion and exclusion patterns contained
unnecessarily duplicated logic. The introduction of a shared base class
allows for easier reuse, especially considering that two more classes
are going to be added in forthcoming changes (regular expressions and
shell-style patterns).
2016-01-13 14:35:59 +01:00
Michael Hanselmann 5d40eba175 Convert pattern test to py.test
The test for exclusion patterns was written using the standard unittest
module. The py.test module provides facilities to parametrize the test.
2016-01-13 12:39:37 +01:00
Thomas Waldmann 7420ea0033 sphinx configuration: fix to create a simple man page from usage docs 2016-01-13 01:20:32 +01:00
Thomas Waldmann 4216a94e19 it's 2016 2016-01-13 00:42:23 +01:00
Thomas Waldmann 86ec3847e2 Authors: make it more clear what refers to borg and what to attic
With some sphinx output formats (e.g. "man") that was not too
clear before this change.
2016-01-13 00:36:14 +01:00
Thomas Waldmann 9a2d1eb1d8 docs: replace "|project_name|" with just "Borg", less ugly 2016-01-13 00:25:43 +01:00
Thomas Waldmann 0f4d3b21c3 minor development docs fixes 2016-01-12 23:49:19 +01:00