Commit Graph

7572 Commits

Author SHA1 Message Date
Michael Deyaso 8af9eb47c2
Added date-matching support for list_considering (#7306)
added date-matching support for list_considering, fixes #7296

Co-authored-by: Michael Deyaso <mdeyaso@fusioniq.io>
2023-02-01 11:32:53 +01:00
TW 8046d6f575
Merge pull request #7311 from ThomasWaldmann/fix-mac-birthtime-test-fail
tests: relax birthtime assertion, fixes #7308
2023-02-01 11:25:55 +01:00
Thomas Waldmann e019487166
tests: relax birthtime assertion, fixes #7308 2023-02-01 01:59:41 +01:00
TW d0344cb8f8
Merge pull request #7305 from ThomasWaldmann/volume-based-checkpointing
volume based checkpointing, fix item_ptrs orphaned chunks
2023-01-31 16:48:49 +01:00
TW 2472b1c63f
Merge pull request #7303 from ThomasWaldmann/fix-pyi
mypy inspired fixes / updates
2023-01-31 15:46:20 +01:00
Thomas Waldmann 15d1bc0c49
fix checkpointing: add item_ptrs chunks cleanup
not having this had created orphaned item_ptrs chunks for checkpoint archives.

also:
- borg check: show id of orphaned chunks
- borg check: archive list with explicit consider_checkpoints=True (this is the default, but better make sure).
2023-01-31 14:40:41 +01:00
Thomas Waldmann 7e31fab754
cleanup: remove Archive.checkpoint_interval (not used)
checkpoint_interval and checkpoint_volume are only needed for
the ChunksProcessor.
2023-01-31 04:01:39 +01:00
Thomas Waldmann 56b6f1d2e0
create/recreate/import-tar: add --checkpoint-volume option
volume based checkpointing is easier to test than its time based cousin.

also added first checkpointing test.
2023-01-31 04:01:37 +01:00
Thomas Waldmann 2705ccb59b
key storage: type hints / cleanup 2023-01-30 18:08:05 +01:00
Thomas Waldmann 360cd8488f
micro-opt: construct borg1_header_fmt Struct only once 2023-01-30 17:56:05 +01:00
Thomas Waldmann e772d70e05
cleaner FileLikeWrapper with own __init__ 2023-01-30 15:54:56 +01:00
Thomas Waldmann 9740767449
fix bug in obfuscated data upgrade code 2023-01-30 15:54:54 +01:00
Thomas Waldmann f9078ebfa9
FlexiKey: define STORAGE in base class
avoids some mypy warnings.
2023-01-30 15:54:52 +01:00
Thomas Waldmann a863249394
fs.py: fix bug in f-string - thanks mypy! 2023-01-30 15:54:50 +01:00
Thomas Waldmann 90a9a124d4
*.pyi: fix types, add missing attrs 2023-01-30 15:54:48 +01:00
TW 77977d988a
Merge pull request #7295 from ThomasWaldmann/refactor
refactor / cosmetic changes / help improved
2023-01-23 15:58:56 +01:00
Thomas Waldmann 5b28674a99
--newer/older/newest/oldest: rephrase help a bit 2023-01-23 15:27:27 +01:00
Thomas Waldmann 61904dd683
ArchiveChecker.check: reorder args, make most kwargs-only 2023-01-23 15:18:11 +01:00
Thomas Waldmann 60ebd1d2b0
Archives.list: reorder args 2023-01-23 15:11:53 +01:00
Michael Deyaso b2654bc17d
Support for date-based matching during archive listing (#7272)
check --archives: add --newer/--older/--newest/--oldest, fixes #7062

Options accept a timespan, like Nd for N days or Nm for N months.

Use these to do date-based matching on archives and only check some of them,
like: borg check --archives --newer=1m --newest=7d

Author: Michael Deyaso <mdeyaso@fusioniq.io>
2023-01-23 15:00:05 +01:00
TW 73e0f8b6b8
Merge pull request #7289 from ThomasWaldmann/command_line-one-str
ArchiveItem.cmdline list-of-str -> .command_line str, fixes #7246
2023-01-22 14:12:21 +01:00
Thomas Waldmann bf667170a7
ArchiveItem.cmdline list-of-str -> .command_line str, fixes #7246
Same change for .recreate_cmdline -> .recreate_command_line .

JSON output key "command_line":
borg 1.x: sys.argv [list of str]
borg 2: shlex.join(sys.argv) [str]
2023-01-20 00:19:00 +01:00
TW ccbfc4ee95
Merge pull request #7287 from ThomasWaldmann/fix-get-item-uid-gid-win32
fix some uid/gid lookup code / tests for win32
2023-01-19 21:48:47 +01:00
TW 4a94097193
Merge pull request #7288 from ThomasWaldmann/host-user-group-names-encoding
hostname / username encoding
2023-01-19 21:48:28 +01:00
Thomas Waldmann 249189e04e
refactor: reuse code from remove_surrogates 2023-01-19 20:58:58 +01:00
Thomas Waldmann b3da7d0e72
make sure hostname and username have no surrogate escapes
if they are present, process them through json_text().
this replaces s-e by "?" for the key and puts the binary
representation into key_b64, if needed.

likely this is rarely needed.
2023-01-19 20:46:40 +01:00
Thomas Waldmann 7ab39f9d42
make the user2uid/group2gid win32 hack behave more like the real code (e.g. posix)
The code relies on them returning the default value (usually
None), if we call user2uid(None) or group2gid(None) (same for
empty string).
2023-01-19 20:07:38 +01:00
Thomas Waldmann 7bd8e924eb
win32: omit some tests with non-existing user/group names
see comment in the code, they currently can't succeed.
2023-01-19 20:07:37 +01:00
TW d090826a37
Merge pull request #7285 from ThomasWaldmann/display-localtime
use local time / local timezone to output timestamps, fixes #7283
2023-01-19 18:38:16 +01:00
Thomas Waldmann 9460da42d1
use local time / local timezone to output timestamps, fixes #7283
"ls" and also "tar" show timestamps as local time.
borg now does the same, but also shows the local tzoffset.

this also affects JSON output.
2023-01-19 03:36:46 +01:00
TW be1048abfe
Merge pull request #7277 from jdchristensen/chunks-cache-output
cache.py: be less verbose during cache sync
2023-01-19 02:45:50 +01:00
TW 48122f9b8b
Merge pull request #7279 from ThomasWaldmann/os-replace-master
use os.replace
2023-01-19 02:45:09 +01:00
Thomas Waldmann 1843990172
use os.replace rather than os.rename
more consistent behaviour on all OSes, incl. windows.
2023-01-19 01:57:03 +01:00
TW 8e012be3fa
Merge pull request #7264 from ThomasWaldmann/fix-locking-win32-master
Fix locking (win32, master)
2023-01-19 01:56:20 +01:00
Dan Christensen 530bd4c298 cache.py: consistenly use "chunks index" 2023-01-18 19:51:01 -05:00
TW 57e0579cf8
Merge pull request #7284 from ThomasWaldmann/prune-in-localtime
fix prune tests, prune in localtime
2023-01-19 01:31:49 +01:00
Thomas Waldmann 2b1303d280
docs: pruning interprets timestamps in the local timezone where borg prune runs 2023-01-19 01:04:49 +01:00
Thomas Waldmann 0e577452c2
tests: fix prune_split tests by giving the timestamps in local timezone
Guess this fixes issues like #5535.

I tested this with TZ=:
- UTC
- UTC+12
- UTC-12
- UTC+14
- UTC-14
2023-01-19 00:52:27 +01:00
Dan Christensen 6f7bc89627 cache.py: minor updates to output 2023-01-18 16:59:44 -05:00
Thomas Waldmann 8a2fd39212
Revert "prune: compute pruning in utc timezone"
This reverts commit 860a48049b.
2023-01-18 22:41:40 +01:00
TW 4664176e87
Merge pull request #7282 from ThomasWaldmann/prune-in-utc
prune: compute pruning in utc timezone
2023-01-18 18:58:09 +01:00
Thomas Waldmann 860a48049b
prune: compute pruning in utc timezone
guess this fixes issues like #5535.

i tested this with TZ=:
- UTC
- UTC+1 (my current local timezone)
- UTC+12
- UTC-12
- UTC+14
2023-01-18 18:27:15 +01:00
TW c8fe49dcb7
Merge pull request #7276 from ThomasWaldmann/symlink-target
Item: symlinks: rename .source to .target, fixes #7245
2023-01-18 17:05:25 +01:00
TW 0fa2506b92
Merge pull request #7280 from ThomasWaldmann/shellpattern-license-master
shellpattern: add license, use copyright/license markup
2023-01-18 16:46:22 +01:00
Thomas Waldmann 88b9868159
shellpattern: add license, use copyright/license markup 2023-01-18 15:45:13 +01:00
Helmut Grohne f2f761212d
update bash completion script commands and options (#7273)
update bash completion script commands and options
2023-01-18 14:10:29 +01:00
Thomas Waldmann c3d0c525f9
locking: get out of kill_stale_lock more quickly if directory does not exist. 2023-01-18 13:44:51 +01:00
Thomas Waldmann 9ba249b482
use for loop 2023-01-18 13:42:39 +01:00
Dan Christensen 7dad4a6992 cache.py: be less verbose during cache sync 2023-01-17 15:21:18 -05:00
Thomas Waldmann 1672aee031
Item: symlinks: rename .source to .target, fixes #7245
Also, in JSON:
- rename "linktarget" to "target" for symlinks
- remove "source" for symlinks
2023-01-16 20:28:25 +01:00