Commit Graph
139 Commits
Author SHA1 Message Date
Julien Cornebise 3bec359355 Merge branch 'main' into add-unsafe-create-without-precheck-option 2026-01-04 22:07:15 +00:00
Julien Cornebise c08f1b8178 Rename unsafe_create_without_precheck to unsafe_skip_path_validation_before_create and address PR feedback (#1222).
- Use skip_ prefix consistent with other borgmatic options
- Reduce runtime warning to single line (users read the config docs)
- Broaden "database dumps" to "data from borgmatic data source hooks"
- Simplify schema docs by referencing user_runtime_directory instead of listing defaults
2026-01-04 22:02:47 +00:00
Julien Cornebise 7e1cb691b6 Add "unsafe_create_without_precheck" option to skip pre-backup validation (#1221).
This option allows users to skip the dry-run validation that checks for
special files and runtime directory exclusions. This can significantly
improve performance for large filesystems with millions of files, where
the validation can take hours.

The option name includes "unsafe" to communicate risk, and a warning is
logged on each backup showing the runtime directory path and advising
users to verify their exclude patterns manually.
2026-01-03 20:54:27 +01:00
Dan Helfman 233a9054c9 Merge branch 'main' into subprocess-stderr-to-error-logs 2026-01-02 18:51:16 -08:00
Dan Helfman 9f6cce2a39 Get several existing tests passing and refactor logging of lines from external programs. 2025-12-30 22:25:12 -08:00
Dan Helfman ec8168af46 Fix an error about the runtime directory getting excluded by tweaking its logic and lowering the error to a warning (#1211). 2025-12-26 22:53:21 -08:00
Dan Helfman 01c7d0a0db Fix that errors and exits when the borgmatic runtime directory is partially excluded by configured excludes (#1203). 2025-12-18 19:04:42 -08:00
Dan Helfman c4c40af812 Account for the case where "store_config_files: false" and the runtime directory never gets added to patterns to begin with (#1122). 2025-09-12 22:17:44 -07:00
Dan Helfman 5028fe9ff4 Bring doc string up to date and rename function for clarity. (#1122). 2025-09-12 14:03:52 -07:00
Dan Helfman f60007545b Update automated tests (#1122). 2025-09-12 12:54:38 -07:00
Dan Helfman 9a80fec91b When running tests, use Ruff for faster and more comprehensive code linting and formatting. 2025-07-17 23:24:58 -07:00
Dan Helfman 1b62be0949 Fix a bug in which quoted "extra_borg_options" values containing spaces are passed to Borg incorrectly. Add a "--comment" flag to the "create" action for creating an archive with a comment (#1108). 2025-06-30 16:16:53 -07:00
Tobias SchlatterandDan Helfman 123f8958f6 Create a checkpoint archive first with streaming processes (#1032).
This ensures that if a streaming process fails, we do not create a
real (i.e. non-checkpoint archive), (fixes #1032).

Without this, there is a race condition where borg already creates an
archive before borgmatic can kill it.

Tested locally (with `pipx install --editable .`):

```sh
borgmatic --config config.yaml create
borgmatic --config config.yaml create --json
```

## Hold up!

Thanks for your contribution. Unfortunately, we don't use GitHub pull requests to manage code contributions to this repository (and GitHub doesn't have any way to disable pull requests entirely). Instead, please see:

https://torsion.org/borgmatic/#contributing

... which provides full instructions on how to submit pull requests. You can even use your GitHub account to login.

Reviewed-on: https://projects.torsion.org/borgmatic-collective/borgmatic/pulls/1102
Reviewed-by: Dan Helfman <witten@torsion.org>
Co-authored-by: Tobias Schlatter <schlatter.tobias@gmail.com>
Co-committed-by: Tobias Schlatter <schlatter.tobias@gmail.com>
2025-06-25 16:24:07 +00:00
Dan Helfman 0d94a6587a Move pattern and flag functions from create.py into their own module (#1056).
Reviewed-on: https://projects.torsion.org/borgmatic-collective/borgmatic/pulls/1056
Reviewed-by: Dan Helfman <witten@torsion.org>
2025-04-07 03:51:36 +00:00
Vandal 360156e3b1 refactor codebase 2025-04-06 21:34:04 +05:30
Dan Helfman 49839e884a Add configuration options for logging and verbosity (#793). 2025-04-04 10:11:00 -07:00
Dan Helfman cf477bdc1c Fix broken list_details, progress, and statistics options (#303). 2025-03-31 11:33:56 -07:00
Dan Helfman 5d9c111910 Fix a runtime directory error from a conflict between "extra_borg_options" and special file detection (#999). 2025-02-22 14:26:21 -08:00
Dan Helfman 4ee2603fef Merge branch 'main' into passphrase-via-file-descriptor 2025-02-21 20:26:48 -08:00
Dan Helfman e69c686abf Get all unit/integration tests passing (#1001). 2025-02-21 11:32:57 -08:00
Dan Helfman 07ecc0ffd6 Send the "encryption_passphrase" option to Borg via an anonymous pipe. 2025-02-17 11:03:36 -08:00
Dan Helfman 6cfa10fb7e Fix a "list" action error when the "encryption_passcommand" option is set (#987). 2025-02-03 23:11:59 -08:00
Dan Helfman 61f0987051 Merge branch 'main' into log-repository-everywhere 2025-01-27 22:03:35 -08:00
Dan Helfman b6ff242d3a Fix for borgmatic "exclude_patterns" and "exclude_from" recursing into excluded subdirectories (#982). 2025-01-27 10:07:19 -08:00
Dan Helfman 7d56641f56 Get existing unit tests passing (#635). 2025-01-26 12:13:29 -08:00
Dan Helfman 8c5db19490 Code formatting (#635). 2025-01-25 14:14:48 -08:00
Dan Helfman cc7e01be68 Log the repository path or label on every relevant log message, not just some logs (#635). 2025-01-25 14:01:25 -08:00
Dan Helfman 1232ba8045 Revert "Log the repository path or label on every relevant log message, not just some logs (#635)."
This reverts commit 90c1161a8c.
2025-01-25 13:57:56 -08:00
Dan Helfman 90c1161a8c Log the repository path or label on every relevant log message, not just some logs (#635). 2025-01-25 13:55:58 -08:00
Dan Helfman 2467518d4e Add even more missing test coverage (#962). 2025-01-16 15:11:59 -08:00
Dan Helfman bbf1c3d55e Add test coverage for new code. 2025-01-14 23:01:39 -08:00
Dan Helfman 0b17fb2d3f Get all existing tests passing (#962). 2025-01-14 13:48:20 -08:00
Dan Helfman ca54da1067 Getting additional tests passing (#962). 2025-01-13 20:51:27 -08:00
Dan Helfman 5560f30aa6 Fix a borgmatic runtime directory error when running the "spot" check with a database hook enabled (#965). 2025-01-12 09:36:24 -08:00
Dan Helfman 2c70ad81ec Fix the "spot" check to support relative source directory paths (#960). Fix the "spot" check to no longer consider pipe files within an archive for file comparisons. Fix auto-excluding of special files (when databases are configured) to support relative source directory paths. 2025-01-01 15:00:36 -08:00
Dan Helfman 267af5b372 To avoid a hang in the database hooks, error and exit when the borgmatic runtime directory overlaps with the configured excludes (#947). 2024-12-19 20:59:57 -08:00
Dan Helfman 5a24bf2037 Get tests passing (#261). 2024-11-22 20:16:18 -08:00
Dan Helfman 295bfb0c57 Update the logic that probes for the borgmatic streaming database dump, bootstrap metadata, and check state directories to support more platforms and use cases (#934). 2024-11-15 18:15:32 -08:00
Dan Helfman 814cdb4b87 Deprecate the "borgmatic_source_directory" option in favor of "user_runtime_directory" and "user_state_directory" (#562). Move the default borgmatic streaming database dump and bootstrap metadata location on disk (#562). With Borg 1.4+, store database dumps and bootstrap metadata in a "/borgmatic" directory within a backup archive (#838). Add "--local-path", "--remote-path", and "--user-runtime-directory" flags to the "config bootstrap" action. 2024-11-03 13:14:05 -08:00
Dan Helfman 13878be254 Move the default check state directory (#562, #638). Deprecate the "borgmatic_source_directory" option in favor of "borgmatic_runtime_directory" and "borgmatic_state_directory" (#562). 2024-10-30 22:36:43 -07:00
Dan Helfman 83bc737185 Borg 2 changes: Default the "archive_name_format" option to just "{hostname}". Update the "--match-archives"/"--archive" flags to support series names / archive hashes. Add a "--match-archives" flag to the "prune" action. 2024-10-25 14:26:31 -07:00
Dan Helfman bd4c672382 Apply the "working_directory" option to all actions, not just "create". Also fix the glob expansion of "source_directories" values to respect the "working_directory" option (#609). 2024-10-20 16:04:41 -07:00
Dan Helfman b7efa0d3f0 When databases are configured, don't auto-enable the "one_file_system" option (#918). 2024-10-01 10:16:30 -07:00
Dan Helfman 34305d686c Revert "Add missing test (#911)" which accidentally included unrelated changes.
This reverts commit bf1e8bc44e.
2024-10-01 09:28:39 -07:00
Dan Helfman bf1e8bc44e Add missing test (#911). 2024-10-01 09:26:00 -07:00
Dan Helfman e0298685a1 Fix the "source_directories_must_exist" option to work with relative "source_directories" paths when a "working_directory" is set (#905). 2024-08-20 13:52:06 -07:00
Dan Helfman f4fcf92bd6 Add an "upload_buffer_size" option to set the size of the upload buffer used in "create" action (#865). 2024-06-23 16:26:22 -07:00
Dan Helfman 4c2eb2bfe3 Spot check basically complete other than docs (#656). 2024-04-15 11:02:05 -07:00
Dan Helfman 6680aece5a Split out (most of) command construction from create_archive() in preparation for reuse in spot check (#656). 2024-04-04 14:23:56 -07:00
Dan Helfman abf2b3a8c7 Elevate specific Borg warnings to errors or squash errors to warnings (#798). 2024-01-21 11:34:40 -08:00