Repository: borgbackup/borg

Issue:
Pattern from file are not excluded `--exclude-from`
## Have you checked borgbackup docs, FAQ, and open Github issues?

YES and `borg help patterns`

## Is this a BUG / ISSUE report or a QUESTION?

BUG

## System information. For client/server mode post info for both machines.

#### Your borg version (borg -V).

`borg 1.1.7`

#### Operating system (distribution) and version.

Ubuntu

#### Full borg commandline that lead to the problem (leave away excludes and passwords)

```sh
$ borg create --verbose --filter AME --list --stats --compression auto,lzma,6 --exclude-caches --exclude-from /home/ubuntu/workspace/bash-scripts/cubus-backup/ignoretest '/home/ubuntu/BorgRepo/::backup-{now}' /home/ubuntu/tmp
```

## Describe the problem you're observing.

The pattern provided in the file `ignoretest` as parameter for `--exclude-from` is ignored. File is backuped anyways. The file contains of the following lines:

```
# exclude file for borg backup
- /home/ubuntu/tmp/ignoreme/*
```

#### Can you reproduce the problem?

1. Use the given exclude file from above. 
2. Create the folder from the exclude
3. Create a file `touch testdata.data` in there
4. Execute `borg create ...`
5. See the file added with status `A`



Discussion:
The leading `- ` is not a valid in an exclude file even though the pattern example from `borg help patterns` even though the documentation claims that an `EXCLUDEFILE` should contain one pattern per line.
hmm, iirc, exclude files just have the path/filenames and pattern files have the additional qualifiers (as they can contain root, include, exclude patterns, while exclude files only have excludes).
@ThomasWaldmann I guess so. The help text for patterns and the manual are not clear about the difference about `EXCLUDEFILE` and `PATTERNFILE` even though both contain patterns. Rephrasing it might be in order or an example usage of the `--exclude-from`  parameter.
I will try to improve the borg help patterns docs.
Not really a big addition, the current doc is quite good I think. Please comment.
I still think an example for `--exclude-from` would be the clearest solution.

Resolving patch:
diff --git a/src/borg/archiver.py b/src/borg/archiver.py
--- a/src/borg/archiver.py
+++ b/src/borg/archiver.py
@@ -2295,6 +2295,13 @@ def do_break_lock(self, args, repository):
             A root path starts with the prefix `R`, followed by a path (a plain path, not a
             file pattern). An include rule starts with the prefix +, an exclude rule starts
             with the prefix -, an exclude-norecurse rule starts with !, all followed by a pattern.
+
+            .. note::
+
+                Via ``--pattern`` or ``--patterns-from`` you can define BOTH inclusion and exclusion
+                of files using pattern prefixes ``+`` and ``-``. With ``--exclude`` and
+                ``--exlude-from`` ONLY excludes are defined.
+
             Inclusion patterns are useful to include paths that are contained in an excluded
             path. The first matching pattern is used so if an include pattern matches before
             an exclude pattern, the file is backed up. If an exclude-norecurse pattern matches


Test patch: