mirror of
https://github.com/restic/restic.git
synced 2025-12-24 16:49:52 -05:00
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
|
||
|---|---|---|
| .. | ||
| _static | ||
| images/aws_s3 | ||
| logo | ||
| man | ||
| .gitignore | ||
| 010_introduction.rst | ||
| 020_installation.rst | ||
| 030_preparing_a_new_repo.rst | ||
| 040_backup.rst | ||
| 045_working_with_repos.rst | ||
| 050_restore.rst | ||
| 060_forget.rst | ||
| 070_encryption.rst | ||
| 075_scripting.rst | ||
| 080_examples.rst | ||
| 090_participating.rst | ||
| 100_references.rst | ||
| 110_talks.rst | ||
| bash-completion.sh | ||
| cache.rst | ||
| conf.py | ||
| design.rst | ||
| developer_information.rst | ||
| faq.rst | ||
| fish-completion.fish | ||
| index.rst | ||
| Makefile | ||
| manual_rest.rst | ||
| requirements.txt | ||
| REST_backend.rst | ||
| test_irreducibility.gap | ||
| zsh-completion.zsh | ||