Add ability to exclude files through .gitignore #4227
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What does this PR change? What problem does it solve?
This PR is a first attempt to add the ability for restic to use
.gitignore
files to exclude entities from the backups.Specifically, it defines a new flag,
--exclude-gitignored
, that can be used to enable the feature.I tested this on linux and appears to work, but expect that I'll need to make more changes to ensure it functions cross-platforms and fits the style of the repo before merging. Looking forward for discussing this.
I used the gitignore parser provided by the
go-git
package.Was the change previously discussed in an issue or on the forum?
This PR is related to issue #1514. (not sure if it can be considered as solved once it is merged since the conversation would also consider other VCSs as alternatives)
Known Issues
See issues 694 and 154.
Mentioning this in the docs may be enough to warn the users. Alternatively, we could consider another package for parsing the .gitignores
Checklist
changelog/unreleased/
that describes the changes for our users (see template).gofmt
on the code in all commits.