From 328cd22a13b0077f3b1ff02cd91beaa105139125 Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Wed, 25 Sep 2024 13:23:46 +0200 Subject: [PATCH] update CHANGES --- docs/changes.rst | 106 +++++++++++++++++++++++++++++++++++------------ 1 file changed, 80 insertions(+), 26 deletions(-) diff --git a/docs/changes.rst b/docs/changes.rst index 2b2c7aeec7..d2674a52b9 100644 --- a/docs/changes.rst +++ b/docs/changes.rst @@ -42,17 +42,23 @@ Compatibility notes: - ssh:// URLs: removed support for /~otheruser/, #6855. If you used this, just replace it by: ssh://user@host:port/home/otheruser/ - -P / --prefix option was removed, please use the similar -a / --match-archives. - - the archive name is always given separately from the repository + - archive names don't need to be unique anymore. to the contrary: + it is now strongly recommended to use the identical name for borg create + within the same series of archives to make borg work more efficiently. + the name now identifies a series of archive, to identify a single archive + please use aid:, e.g.: borg delete aid:d34db33f + - the archive id is always given separately from the repository (differently than with borg 1.x you must not give repo::archive). - - the archive name is either given as a positional parameter, like: + - the series name or archive id is either given as a positional parameter, + like: - - borg create myarchive2 /some/path - - borg diff myarchive1 myarchive2 + - borg create documents ~/Documents + - borg diff aid:deadbeef aid:d34db33f - or, if the command makes sense for an arbitrary amount of archives, archives can be selected using a glob pattern, like: - - borg delete -a 'sh:myarchive*' - - borg recreate -a 'sh:myarchive*' + - borg delete -a 'sh:myarchive-2024-*' + - borg recreate -a 'sh:myarchive-2024-*' - some borg 1.x commands that supported working on a repo AND on an archive were split into 2 commands, some others were renamed: @@ -66,15 +72,15 @@ Compatibility notes: - borg repo-space - borg 2 archive commands: - - borg create ARCHIVE ... - - borg list ARCHIVE - - borg extract ARCHIVE ... - - borg diff ARCH1 ARCH2 - - borg rename OLDNAME NEWNAME - - borg info -a ARCH_GLOB - - borg delete -a ARCH_GLOB - - borg recreate -a ARCH_GLOB ... - - borg mount -a ARCH_GLOB mountpoint ... + - borg create NAME ... + - borg list ID + - borg extract ID ... + - borg diff ID1 ID2 + - borg rename ID NEWNAME + - borg info ID + - borg delete ID + - borg recreate ID ... + - borg mount -a ID mountpoint ... For more details, please consult the docs or --help option output. - create/recreate/import-tar --timestamp: defaults to local timezone @@ -98,8 +104,8 @@ Compatibility notes: So you might need to edit your scripts like e.g.:: - borg 1.x: --glob-archives 'myserver-*' - borg 2.0: --match-archives 'sh:myserver-*' + borg 1.x: --glob-archives 'myserver-2024-*' + borg 2.0: --match-archives 'sh:myserver-2024-*' - use platformdirs 3.x.x instead of home-grown code. Due to that: @@ -123,24 +129,72 @@ Compatibility notes: Change Log 2.x ============== -Version 2.0.0b10 (2024-09-09) +Version 2.0.0b11 (2024-xx-xx) ----------------------------- Please note: -This is a beta release, only for testing - do not use for production repos. +Beta releases are only for testing on NEW repos - do not use for production. For upgrade and compatibility hints, please also read the section "Upgrade Notes" above. -TL;DR: this is a huge change and the first very fundamental change in how borg -works since ever: +New features: + +- rclone:// borg repositories, this enables 100+ cloud storage providers! +- parallel operations in same repo from same client (same user/machine) +- archive series feature, #7930 + + TL;DR: a NAME now identifies a series of identically named archives, + to identify a specific single archive, use aid:. + + in borg 1.x, we used to put a timestamp into the archive name, because borg1 + required unique archive names. -- you will need to create new repos. -- likely more exciting than previous betas, definitely not for production. -- remove "borg check --repair --archives-only" from your script in case you - added that for b9. "borg compact -v" now finds and deletes orphan chunks - and also outputs some new stats. + borg2 does not require unique archive names, but it encourages you to even + use a identical archive names within the same SERIES of archives, e.g. you + could backup user files to archives named "user-files" and system files to + archives named "system-files". + that makes matching (e.g. for prune, for the files cache, ...) much simpler + and borg now KNOWS which archives belong to the same series (because they all + have the same name). +- info/delete/prune: allow positional NAME argument, e.g.: + + - borg prune --keep-daily 30 + - borg delete aid: +- create: also archive inode number, #8362 + + borg can use this when using archive series to rebuild the local files cache + from the previous archive (of the same series) in the repository. + +Fixes: + +- bugfix: remove superfluous repository.list() call. for high latency repos + (like sftp, cloud), this improves performance of borg check and compact. +- repository.list: refresh lock more frequently +- misc. commands fixed for non-unique archive names +- remote: allow get_manifest method +- files cache: fix rare race condition with data loss potential, #3536 +- storelocking: misc. fixes / cleanups + +Other changes: + +- cache the chunks index in the repository, #8397. + improves high latency repo performance for most commands compared to b10. +- repo-compress: faster by using chunks index rather than repository.list(). +- files cache entries now have ctime AND mtime. + borg updates the ctime and mtime of known and "unchanged" files, #4915. +- rebuild files cache from previous archive in same series, #8385. +- reduce RAM usage by splitting the files cache by archive series, #5658. +- remove AdHocCache, remove BORG_CACHE_IMPL (we only have one implementation). +- docs: user@ and :port are optional in sftp and ssh URLs. +- CI: re-enable windows build after fixing it. +- upgrade pyinstaller to 6.10.0 +- increase IDS_PER_CHUNK, #6945q + + +Version 2.0.0b10 (2024-09-09) +----------------------------- New features: