Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update CHANGES #8412

Merged
merged 1 commit into from
Sep 25, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
106 changes: 80 additions & 26 deletions docs/changes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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:<archive-hash-prefix>, 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:

Expand All @@ -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
Expand All @@ -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:

Expand All @@ -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:<archive hash>.

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 <seriesname>
- borg delete aid:<archive hash>
- 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:

Expand Down
Loading