forked from TrueCloudLab/restic
2ee07ded2b
This is quite similar to gitignore. If a pattern is suffixed by an exclamation mark and match a file that was previously matched by a regular pattern, the match is cancelled. Notably, this can be used with `--exclude-file` to cancel the exclusion of some files. Like for gitignore, once a directory is excluded, it is not possible to include files inside the directory. For example, a user wanting to only keep `*.c` in some directory should not use: ~/work !~/work/*.c But: ~/work/* !~/work/*.c I didn't write documentation or changelog entry. I would like to get feedback if this is the right approach for excluding/including files at will for backups. I use something like this as an exclude file to backup my home: $HOME/**/* !$HOME/Documents !$HOME/code !$HOME/.emacs.d !$HOME/games # [...] node_modules *~ *.o *.lo *.pyc # [...] $HOME/code/linux/* !$HOME/code/linux/.git # [...] There are some limitations for this change: - Patterns are not mixed accross methods: patterns from file are handled first and if a file is excluded with this method, it's not possible to reinclude it with `--exclude !something`. - Patterns starting with `!` are now interpreted as a negative pattern. I don't think anyone was relying on that. - The whole list of patterns is walked for each match. We may optimize later by exiting early if we know no pattern is starting with `!`. Fix #233 |
||
---|---|---|
.. | ||
0.6.0_2017-05-29 | ||
0.6.1_2017-06-01 | ||
0.7.0_2017-07-01 | ||
0.7.1_2017-07-22 | ||
0.7.2_2017-09-13 | ||
0.7.3_2017-09-20 | ||
0.8.0_2017-11-26 | ||
0.8.1_2017-12-27 | ||
0.8.2_2018-02-17 | ||
0.8.3_2018-02-26 | ||
0.9.0_2018-05-21 | ||
0.9.1_2018-06-10 | ||
0.9.2_2018-08-06 | ||
0.9.3_2018-10-13 | ||
0.9.4_2019-01-06 | ||
0.9.5_2019-04-23 | ||
0.9.6_2019-11-22 | ||
0.10.0_2020-09-19 | ||
0.11.0_2020-11-05 | ||
0.12.0_2021-02-14 | ||
0.12.1_2021-08-03 | ||
unreleased | ||
changelog-github.tmpl | ||
CHANGELOG.tmpl | ||
TEMPLATE |