restic/changelog
Vincent Bernat 2ee07ded2b filter: ability to use negative patterns
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
2022-03-20 13:33:08 +01:00
..
0.6.0_2017-05-29 Update changelog/ for new version of calens 2018-02-16 23:05:58 +01:00
0.6.1_2017-06-01 Update changelog/ for new version of calens 2018-02-16 23:05:58 +01:00
0.7.0_2017-07-01 Update changelog/ for new version of calens 2018-02-16 23:05:58 +01:00
0.7.1_2017-07-22 Fix typo in changelog 2021-08-21 12:16:04 +02:00
0.7.2_2017-09-13 Update changelog/ for new version of calens 2018-02-16 23:05:58 +01:00
0.7.3_2017-09-20 Update changelog/ for new version of calens 2018-02-16 23:05:58 +01:00
0.8.0_2017-11-26 Fix typos 2020-05-16 14:05:26 +08:00
0.8.1_2017-12-27 Update changelog/ for new version of calens 2018-02-16 23:05:58 +01:00
0.8.2_2018-02-17 changelog: Add release date for 0.8.2 2018-02-17 20:26:43 +01:00
0.8.3_2018-02-26 Move changelog entries to unreleased version 2018-03-05 20:32:10 +01:00
0.9.0_2018-05-21 Remove superseded feature from the CHANGELOG 2018-05-22 20:57:07 +02:00
0.9.1_2018-06-10 Fix changelog entry 2018-06-10 11:29:57 +02:00
0.9.2_2018-08-06 Create changelog/ release subdir for 0.9.2 2018-08-06 21:28:16 +02:00
0.9.3_2018-10-13 Correct summary for #1978 2018-10-28 20:55:49 +01:00
0.9.4_2019-01-06 Create changelog dir for 0.9.4 2019-01-06 21:39:56 +01:00
0.9.5_2019-04-23 Move changelog entry for #2179 2019-11-24 15:15:19 +01:00
0.9.6_2019-11-22 Move changelog entry for #2179 2019-11-24 15:15:19 +01:00
0.10.0_2020-09-19 Add gitignore to changelog/unreleased 2020-11-05 09:01:32 +01:00
0.11.0_2020-11-05 Prepare changelog for 0.11.0 2020-11-05 09:41:22 +01:00
0.12.0_2021-02-14 Prepare changelog for 0.12.0 2021-02-14 11:44:00 +01:00
0.12.1_2021-08-03 Prepare changelog for 0.12.1 2021-08-03 11:45:19 +02:00
unreleased filter: ability to use negative patterns 2022-03-20 13:33:08 +01:00
changelog-github.tmpl Fix linebreak in GitHub changelog template 2018-02-26 21:41:37 +01:00
CHANGELOG.tmpl Fix template for new version of calens 2020-01-01 11:58:21 +01:00
TEMPLATE Improved changelog template 2020-10-12 12:15:15 +02:00