Commit Graph

1949 Commits

Author SHA1 Message Date
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
TW 4a9672e8d5 Merge pull request #538 from ThomasWaldmann/fix-library-path
unset LD_LIBRARY_PATH before invoking ssh, hopefully fixes #514
2016-01-12 19:58:04 +01:00
TW 2921b60e69 Merge pull request #539 from ThomasWaldmann/add-version
display borg version below tracebacks, fixes #532
2016-01-12 19:57:41 +01:00
TW 0f02513410 Merge pull request #540 from ThomasWaldmann/isotimestamp-with-wkday
add abbreviated weekday to timestamp format, fixes #496
2016-01-12 19:57:14 +01:00
TW d02def56f5 Merge pull request #543 from hansmi/dedent-pattern-help
Dedent pattern help text
2016-01-12 19:29:07 +01:00
Michael Hanselmann 98da9d1b96 Dedent pattern help text
The help text describing patterns should be dedented like other
multi-paragraph text blocks.
2016-01-12 17:53:34 +01:00
Thomas Waldmann 84672f7081 log stats consistently, fixes #526
prune and create now both require --verbose --stats to show stats.
it was implemented in this way (and not with print) so you can feed the stats data
into the logging system, too.

delete now says "Archive deleted" in verbose mode (for consistency,
it already said "Repository deleted" when deleting a repo).

also: add helpers.log_multi to comfortably and prettily output a block of log lines
2016-01-12 00:41:06 +01:00
Thomas Waldmann e5c29bd145 add abbreviated weekday to timestamp format, fixes #496 2016-01-11 23:31:24 +01:00
Thomas Waldmann 857f563307 display borg version below tracebacks, fixes #532 2016-01-11 23:22:04 +01:00
TW c5dcf46d44 Merge pull request #531 from hansmi/add-exclude-from-test
Factorize and test loading of excludes from file
2016-01-11 19:52:32 +01:00
Michael Hanselmann 02e04653b6 Factorize and test loading of excludes from file
The parsing code for exclude files (given via `--exclude-from`) was not
tested. Its core is factorized into a separate function to facilitate an
easier test. The observable behaviour is unchanged.
2016-01-11 12:24:26 +01:00
Thomas Waldmann 170f847e74 unset LD_LIBRARY_PATH before invoking ssh, hopefully fixes #514 2016-01-11 02:08:58 +01:00
TW 89fbaa9767 Merge pull request #518 from htgoebel/patch-1
Update FAQ
2016-01-11 00:03:49 +01:00
Hartmut Goebel 0c2e517e04 Update FAQ
Clarify that user and group of owner are stored as name, except if --numeric-owner is given.
2016-01-09 23:50:41 +01:00
TW 047cfc90e7 Merge pull request #534 from lfam/contrib-docs
docs: Give project name in usage example.
2016-01-09 05:14:43 +01:00