summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGianfranco Costamagna <locutusofborg@debian.org>2022-12-29 10:15:36 +0100
committerGianfranco Costamagna <locutusofborg@debian.org>2022-12-29 10:15:36 +0100
commitfc987337b4e18e942d310f74accc1810ce333104 (patch)
tree5378a9ee88b0f59e71e454d8954d11deaf4f57d9
parent96fffe7ecf36acef545a7ce8441874f1df0eaedd (diff)
parentecdf54b89da43811a37cbb5832571f57d7744bfb (diff)
Update upstream source from tag 'upstream/1.2.3'
Update to upstream version '1.2.3' with Debian dir f562207ede40416dc4c04f78f63e0fd8d97e7150
-rw-r--r--.appveyor.yml27
-rw-r--r--CHANGES.rst30
-rw-r--r--PKG-INFO2
-rw-r--r--docs/changes.rst30
-rw-r--r--docs/faq.rst11
-rw-r--r--docs/man/borg-benchmark-crud.12
-rw-r--r--docs/man/borg-benchmark.12
-rw-r--r--docs/man/borg-break-lock.12
-rw-r--r--docs/man/borg-check.18
-rw-r--r--docs/man/borg-common.16
-rw-r--r--docs/man/borg-compact.14
-rw-r--r--docs/man/borg-compression.114
-rw-r--r--docs/man/borg-config.18
-rw-r--r--docs/man/borg-create.126
-rw-r--r--docs/man/borg-delete.126
-rw-r--r--docs/man/borg-diff.116
-rw-r--r--docs/man/borg-export-tar.114
-rw-r--r--docs/man/borg-extract.110
-rw-r--r--docs/man/borg-import-tar.110
-rw-r--r--docs/man/borg-info.110
-rw-r--r--docs/man/borg-init.18
-rw-r--r--docs/man/borg-key-change-passphrase.110
-rw-r--r--docs/man/borg-key-export.14
-rw-r--r--docs/man/borg-key-import.14
-rw-r--r--docs/man/borg-key-migrate-to-repokey.12
-rw-r--r--docs/man/borg-key.12
-rw-r--r--docs/man/borg-list.126
-rw-r--r--docs/man/borg-mount.114
-rw-r--r--docs/man/borg-patterns.14
-rw-r--r--docs/man/borg-placeholders.14
-rw-r--r--docs/man/borg-prune.128
-rw-r--r--docs/man/borg-recreate.116
-rw-r--r--docs/man/borg-rename.12
-rw-r--r--docs/man/borg-serve.110
-rw-r--r--docs/man/borg-umount.16
-rw-r--r--docs/man/borg-upgrade.110
-rw-r--r--docs/man/borg-with-lock.14
-rw-r--r--docs/man/borg.130
-rw-r--r--docs/man/borgfs.114
-rw-r--r--docs/quickstart.rst8
-rw-r--r--docs/usage/check.rst.inc76
-rw-r--r--docs/usage/compact.rst.inc4
-rw-r--r--docs/usage/config.rst.inc4
-rw-r--r--docs/usage/create.rst.inc8
-rw-r--r--docs/usage/delete.rst2
-rw-r--r--docs/usage/delete.rst.inc96
-rw-r--r--docs/usage/diff.rst.inc4
-rw-r--r--docs/usage/export-tar.rst.inc6
-rw-r--r--docs/usage/extract.rst.inc4
-rw-r--r--docs/usage/help.rst.inc2
-rw-r--r--docs/usage/import-tar.rst.inc6
-rw-r--r--docs/usage/info.rst.inc56
-rw-r--r--docs/usage/init.rst.inc4
-rw-r--r--docs/usage/key_export.rst.inc4
-rw-r--r--docs/usage/key_import.rst.inc4
-rw-r--r--docs/usage/list.rst.inc12
-rw-r--r--docs/usage/mount.rst.inc104
-rw-r--r--docs/usage/prune.rst8
-rw-r--r--docs/usage/prune.rst.inc96
-rw-r--r--docs/usage/recreate.rst.inc4
-rw-r--r--docs/usage/serve.rst.inc4
-rw-r--r--docs/usage/upgrade.rst.inc4
-rw-r--r--scripts/msys2-build5
-rw-r--r--scripts/msys2-install-deps4
-rwxr-xr-xscripts/upload-pypi4
-rw-r--r--scripts/win-build.ps118
-rw-r--r--scripts/win-download-openssl.ps115
-rw-r--r--scripts/win-setup-build-env.ps118
-rw-r--r--setup.py2
-rw-r--r--src/borg/_version.py3
-rw-r--r--src/borg/algorithms/checksums.c17
-rw-r--r--src/borg/archive.py63
-rw-r--r--src/borg/archiver.py49
-rw-r--r--src/borg/compress.c8
-rw-r--r--src/borg/crypto/file_integrity.py11
-rw-r--r--src/borg/crypto/low_level.c9
-rw-r--r--src/borg/helpers/fs.py6
-rw-r--r--src/borg/helpers/misc.py14
-rw-r--r--src/borg/repository.py8
-rw-r--r--src/borg/testsuite/archiver.py59
-rw-r--r--src/borg/testsuite/hashindex.py4
-rw-r--r--src/borg/testsuite/repository.py10
-rw-r--r--src/borg/xattr.py37
-rw-r--r--src/borgbackup.egg-info/PKG-INFO2
-rw-r--r--src/borgbackup.egg-info/SOURCES.txt6
-rw-r--r--tox.ini4
86 files changed, 692 insertions, 660 deletions
diff --git a/.appveyor.yml b/.appveyor.yml
deleted file mode 100644
index 6ceca538..00000000
--- a/.appveyor.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-version: '{build}'
-
-environment:
- matrix:
- - PYTHON: C:\Python38-x64
-
-# Disable automatic builds
-build: off
-
-# Build artifacts: all wheel and exe files in the dist folder
-artifacts:
- - path: 'dist\*.whl'
- - path: 'dist\*.exe'
-
-install:
-- ps: scripts\win-download-openssl.ps1
-- ps: |
- & $env:PYTHON\python.exe -m venv borg-env
- borg-env\Scripts\activate.ps1
- python -m pip install -U pip
- pip install -r requirements.d/development.txt
- pip install wheel pyinstaller
-
-build_script:
-- ps: |
- borg-env\Scripts\activate.ps1
- scripts\win-build.ps1
diff --git a/CHANGES.rst b/CHANGES.rst
index 7f4ec62e..3dc9d84f 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -217,7 +217,7 @@ The best check that everything is ok is to run a dry-run extraction::
Change Log
==========
-Version 1.2.2 (2022-08-20)
+Version 1.2.3 (2022-12-24)
--------------------------
Upgrade notes:
@@ -297,6 +297,34 @@ Compatibility notes:
if you have scripts expecting rc == 2 for a signal exit, you need to update
them to check for >= 128.
+Fixes:
+
+- create: fix --list --dry-run output for directories, #7209
+- diff/recreate: normalize chunker params before comparing them, #7079
+- check: fix uninitialised variable if repo is completely empty, #7034
+- xattrs: improve error handling, #6988
+- fix args.paths related argparsing, #6994
+- archive.save(): always use metadata from stats (e.g. nfiles, size, ...), #7072
+- tar_filter: recognize .tar.zst as zstd, #7093
+- get_chunker: fix missing sparse=False argument, #7056
+- file_integrity.py: make sure file_fd is always closed on exit
+- repository: cleanup(): close segment before unlinking
+- repository: use os.replace instead of os.rename
+
+Other changes:
+
+- remove python < 3.7 compatibility code
+- do not use version_tuple placeholder in setuptools_scm template
+- CI: fix tox4 passenv issue, #7199
+- vagrant: update to python 3.9.16, use the openbsd 7.1 box
+- misc. test suite and docs fixes / improvements
+- remove deprecated --prefix from docs, #7109
+- Windows: use MSYS2 for Github CI, remove Appveyor CI
+
+
+Version 1.2.2 (2022-08-20)
+--------------------------
+
New features:
- prune/delete --checkpoint-interval=1800 and ctrl-c/SIGINT support, #6284
diff --git a/PKG-INFO b/PKG-INFO
index b59991ef..1cecd97e 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: borgbackup
-Version: 1.2.2
+Version: 1.2.3
Summary: Deduplicated, encrypted, authenticated and compressed backups
Home-page: https://borgbackup.readthedocs.io/
Author: The Borg Collective (see AUTHORS file)
diff --git a/docs/changes.rst b/docs/changes.rst
index 7f4ec62e..3dc9d84f 100644
--- a/docs/changes.rst
+++ b/docs/changes.rst
@@ -217,7 +217,7 @@ The best check that everything is ok is to run a dry-run extraction::
Change Log
==========
-Version 1.2.2 (2022-08-20)
+Version 1.2.3 (2022-12-24)
--------------------------
Upgrade notes:
@@ -297,6 +297,34 @@ Compatibility notes:
if you have scripts expecting rc == 2 for a signal exit, you need to update
them to check for >= 128.
+Fixes:
+
+- create: fix --list --dry-run output for directories, #7209
+- diff/recreate: normalize chunker params before comparing them, #7079
+- check: fix uninitialised variable if repo is completely empty, #7034
+- xattrs: improve error handling, #6988
+- fix args.paths related argparsing, #6994
+- archive.save(): always use metadata from stats (e.g. nfiles, size, ...), #7072
+- tar_filter: recognize .tar.zst as zstd, #7093
+- get_chunker: fix missing sparse=False argument, #7056
+- file_integrity.py: make sure file_fd is always closed on exit
+- repository: cleanup(): close segment before unlinking
+- repository: use os.replace instead of os.rename
+
+Other changes:
+
+- remove python < 3.7 compatibility code
+- do not use version_tuple placeholder in setuptools_scm template
+- CI: fix tox4 passenv issue, #7199
+- vagrant: update to python 3.9.16, use the openbsd 7.1 box
+- misc. test suite and docs fixes / improvements
+- remove deprecated --prefix from docs, #7109
+- Windows: use MSYS2 for Github CI, remove Appveyor CI
+
+
+Version 1.2.2 (2022-08-20)
+--------------------------
+
New features:
- prune/delete --checkpoint-interval=1800 and ctrl-c/SIGINT support, #6284
diff --git a/docs/faq.rst b/docs/faq.rst
index 03736ddd..786ed6e3 100644
--- a/docs/faq.rst
+++ b/docs/faq.rst
@@ -435,18 +435,19 @@ How do I configure different prune policies for different directories?
Say you want to prune ``/var/log`` faster than the rest of
``/``. How do we implement that? The answer is to backup to different
archive *names* and then implement different prune policies for
-different prefixes. For example, you could have a script that does::
+different --glob-archives matching patterns.
+
+For example, you could have a script that does::
borg create --exclude var/log $REPOSITORY:main-$(date +%Y-%m-%d) /
borg create $REPOSITORY:logs-$(date +%Y-%m-%d) /var/log
Then you would have two different prune calls with different policies::
- borg prune --verbose --list -d 30 --prefix main- "$REPOSITORY"
- borg prune --verbose --list -d 7 --prefix logs- "$REPOSITORY"
+ borg prune --verbose --list -d 30 --glob-archives 'main-*' "$REPOSITORY"
+ borg prune --verbose --list -d 7 --glob-archives 'logs-*' "$REPOSITORY"
-This will keep 7 days of logs and 30 days of everything else. Borg 1.1
-also supports the ``--glob-archives`` parameter.
+This will keep 7 days of logs and 30 days of everything else.
How do I remove files from an existing backup?
----------------------------------------------
diff --git a/docs/man/borg-benchmark-crud.1 b/docs/man/borg-benchmark-crud.1
index 573c7c71..7dfcabc3 100644
--- a/docs/man/borg-benchmark-crud.1
+++ b/docs/man/borg-benchmark-crud.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "BORG-BENCHMARK-CRUD" 1 "2022-08-20" "" "borg backup tool"
+.TH "BORG-BENCHMARK-CRUD" 1 "2022-12-24" "" "borg backup tool"
.SH NAME
borg-benchmark-crud \- Benchmark Create, Read, Update, Delete for archives.
.SH SYNOPSIS
diff --git a/docs/man/borg-benchmark.1 b/docs/man/borg-benchmark.1
index 20fa1d32..2d204520 100644
--- a/docs/man/borg-benchmark.1
+++ b/docs/man/borg-benchmark.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "BORG-BENCHMARK" 1 "2022-08-20" "" "borg backup tool"
+.TH "BORG-BENCHMARK" 1 "2022-12-24" "" "borg backup tool"
.SH NAME
borg-benchmark \- benchmark command
.SH SYNOPSIS
diff --git a/docs/man/borg-break-lock.1 b/docs/man/borg-break-lock.1
index e80119d0..4284712b 100644
--- a/docs/man/borg-break-lock.1
+++ b/docs/man/borg-break-lock.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "BORG-BREAK-LOCK" 1 "2022-08-20" "" "borg backup tool"
+.TH "BORG-BREAK-LOCK" 1 "2022-12-24" "" "borg backup tool"
.SH NAME
borg-break-lock \- Break the repository lock (e.g. in case it was left by a dead borg.
.SH SYNOPSIS
diff --git a/docs/man/borg-check.1 b/docs/man/borg-check.1
index 21cacebb..17ed5059 100644
--- a/docs/man/borg-check.1
+++ b/docs/man/borg-check.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "BORG-CHECK" 1 "2022-08-20" "" "borg backup tool"
+.TH "BORG-CHECK" 1 "2022-12-24" "" "borg backup tool"
.SH NAME
borg-check \- Check repository consistency
.SH SYNOPSIS
@@ -132,7 +132,7 @@ See \fIborg\-common(1)\fP for common options of Borg commands.
.B REPOSITORY_OR_ARCHIVE
repository or archive to check consistency of
.UNINDENT
-.SS optional arguments
+.SS options
.INDENT 0.0
.TP
.B \-\-repository\-only
@@ -157,10 +157,10 @@ do only a partial repo check for max. SECONDS seconds (Default: unlimited)
.INDENT 0.0
.TP
.BI \-P \ PREFIX\fR,\fB \ \-\-prefix \ PREFIX
-only consider archive names starting with this prefix.
+only consider archive names starting with this prefix. (deprecated)
.TP
.BI \-a \ GLOB\fR,\fB \ \-\-glob\-archives \ GLOB
-only consider archive names matching the glob. sh: rules apply, see "borg help patterns". \fB\-\-prefix\fP and \fB\-\-glob\-archives\fP are mutually exclusive.
+only consider archive names matching the glob. sh: rules apply, see \(dqborg help patterns\(dq.
.TP
.BI \-\-sort\-by \ KEYS
Comma\-separated list of sorting keys; valid keys are: timestamp, name, id; default is: timestamp
diff --git a/docs/man/borg-common.1 b/docs/man/borg-common.1
index 277abab0..4ea4f97d 100644
--- a/docs/man/borg-common.1
+++ b/docs/man/borg-common.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "BORG-COMMON" 1 "2022-08-20" "" "borg backup tool"
+.TH "BORG-COMMON" 1 "2022-12-24" "" "borg backup tool"
.SH NAME
borg-common \- Common options of Borg commands
.SH SYNOPSIS
@@ -79,7 +79,7 @@ show/log the return code (rc)
set umask to M (local only, default: 0077)
.TP
.BI \-\-remote\-path \ PATH
-use PATH as borg executable on the remote (default: "borg")
+use PATH as borg executable on the remote (default: \(dqborg\(dq)
.TP
.BI \-\-remote\-ratelimit \ RATE
deprecated, use \fB\-\-upload\-ratelimit\fP instead
@@ -97,7 +97,7 @@ set network upload buffer size in MiB. (default: 0=no buffer)
treat part files like normal files (e.g. to list/extract them)
.TP
.BI \-\-debug\-profile \ FILE
-Write execution profile in Borg format into FILE. For local use a Python\-compatible file can be generated by suffixing FILE with ".pyprof".
+Write execution profile in Borg format into FILE. For local use a Python\-compatible file can be generated by suffixing FILE with \(dq.pyprof\(dq.
.TP
.BI \-\-rsh \ RSH
Use this command to connect to the \(aqborg serve\(aq process (default: \(aqssh\(aq)
diff --git a/docs/man/borg-compact.1 b/docs/man/borg-compact.1
index 5254d0d7..5ead9e00 100644
--- a/docs/man/borg-compact.1
+++ b/docs/man/borg-compact.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "BORG-COMPACT" 1 "2022-08-20" "" "borg backup tool"
+.TH "BORG-COMPACT" 1 "2022-12-24" "" "borg backup tool"
.SH NAME
borg-compact \- compact segment files in the repository
.SH SYNOPSIS
@@ -66,7 +66,7 @@ See \fIborg\-common(1)\fP for common options of Borg commands.
.B REPOSITORY
repository to compact
.UNINDENT
-.SS optional arguments
+.SS options
.INDENT 0.0
.TP
.B \-\-cleanup\-commits
diff --git a/docs/man/borg-compression.1 b/docs/man/borg-compression.1
index 302385fd..97f75b33 100644
--- a/docs/man/borg-compression.1
+++ b/docs/man/borg-compression.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "BORG-COMPRESSION" 1 "2022-08-20" "" "borg backup tool"
+.TH "BORG-COMPRESSION" 1 "2022-12-24" "" "borg backup tool"
.SH NAME
borg-compression \- Details regarding compression
.SH DESCRIPTION
@@ -53,20 +53,20 @@ Do not compress.
Use lz4 compression. Very high speed, very low compression. (default)
.TP
.B zstd[,L]
-Use zstd ("zstandard") compression, a modern wide\-range algorithm.
+Use zstd (\(dqzstandard\(dq) compression, a modern wide\-range algorithm.
If you do not explicitly give the compression level L (ranging from 1
to 22), it will use level 3.
Archives compressed with zstd are not compatible with borg < 1.1.4.
.TP
.B zlib[,L]
-Use zlib ("gz") compression. Medium speed, medium compression.
+Use zlib (\(dqgz\(dq) compression. Medium speed, medium compression.
If you do not explicitly give the compression level L (ranging from 0
to 9), it will use level 6.
-Giving level 0 (means "no compression", but still has zlib protocol
-overhead) is usually pointless, you better use "none" compression.
+Giving level 0 (means \(dqno compression\(dq, but still has zlib protocol
+overhead) is usually pointless, you better use \(dqnone\(dq compression.
.TP
.B lzma[,L]
-Use lzma ("xz") compression. Low speed, high compression.
+Use lzma (\(dqxz\(dq) compression. Low speed, high compression.
If you do not explicitly give the compression level L (ranging from 0
to 9), it will use level 6.
Giving levels above 6 is pointless and counterproductive because it does
@@ -76,7 +76,7 @@ lots of CPU cycles and RAM.
.B auto,C[,L]
Use a built\-in heuristic to decide per chunk whether to compress or not.
The heuristic tries with lz4 whether the data is compressible.
-For incompressible data, it will not use compression (uses "none").
+For incompressible data, it will not use compression (uses \(dqnone\(dq).
For compressible data, it uses the given C[,L] compression \- with C[,L]
being any valid compression specifier.
.TP
diff --git a/docs/man/borg-config.1 b/docs/man/borg-config.1
index 58b2b3c2..8067a410 100644
--- a/docs/man/borg-config.1
+++ b/docs/man/borg-config.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "BORG-CONFIG" 1 "2022-08-20" "" "borg backup tool"
+.TH "BORG-CONFIG" 1 "2022-12-24" "" "borg backup tool"
.SH NAME
borg-config \- get, set, and delete values in a repository or cache config file
.SH SYNOPSIS
@@ -41,8 +41,8 @@ For security reasons, this command only works on local repositories.
To delete a config value entirely, use \fB\-\-delete\fP\&. To list the values
of the configuration file or the default values, use \fB\-\-list\fP\&. To get and existing
key, pass only the key name. To set a key, pass both the key name and
-the new value. Keys can be specified in the format "section.name" or
-simply "name"; the section will default to "repository" and "cache" for
+the new value. Keys can be specified in the format \(dqsection.name\(dq or
+simply \(dqname\(dq; the section will default to \(dqrepository\(dq and \(dqcache\(dq for
the repo and cache configs, respectively.
.sp
By default, borg config manipulates the repository config file. Using \fB\-\-cache\fP
@@ -62,7 +62,7 @@ name of config key
.B VALUE
new value for key
.UNINDENT
-.SS optional arguments
+.SS options
.INDENT 0.0
.TP
.B \-c\fP,\fB \-\-cache
diff --git a/docs/man/borg-create.1 b/docs/man/borg-create.1
index 678158d3..62065f9e 100644
--- a/docs/man/borg-create.1
+++ b/docs/man/borg-create.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "BORG-CREATE" 1 "2022-08-20" "" "borg backup tool"
+.TH "BORG-CREATE" 1 "2022-12-24" "" "borg backup tool"
.SH NAME
borg-create \- Create new archive
.SH SYNOPSIS
@@ -112,8 +112,8 @@ The \fB\-\-progress\fP option shows (from left to right) Original, Compressed an
the currently processed path.
.sp
When using \fB\-\-stats\fP, you will get some statistics about how much data was
-added \- the "This Archive" deduplicated size there is most interesting as that is
-how much your repository will grow. Please note that the "All archives" stats refer to
+added \- the \(dqThis Archive\(dq deduplicated size there is most interesting as that is
+how much your repository will grow. Please note that the \(dqAll archives\(dq stats refer to
the state after creation. Also, the \fB\-\-stats\fP and \fB\-\-dry\-run\fP options are mutually
exclusive because the data is not actually compressed and deduplicated during a dry run.
.sp
@@ -132,7 +132,7 @@ name of archive to create (must be also a valid directory name)
.B PATH
paths to archive
.UNINDENT
-.SS optional arguments
+.SS options
.INDENT 0.0
.TP
.B \-n\fP,\fB \-\-dry\-run
@@ -265,7 +265,7 @@ write checkpoint every SECONDS seconds (Default: 1800)
specify the chunker parameters (ALGO, CHUNK_MIN_EXP, CHUNK_MAX_EXP, HASH_MASK_BITS, HASH_WINDOW_SIZE). default: buzhash,19,23,21,4095
.TP
.BI \-C \ COMPRESSION\fR,\fB \ \-\-compression \ COMPRESSION
-select compression algorithm, see the output of the "borg help compression" command for details.
+select compression algorithm, see the output of the \(dqborg help compression\(dq command for details.
.UNINDENT
.SH EXAMPLES
.INDENT 0.0
@@ -273,7 +273,7 @@ select compression algorithm, see the output of the "borg help compression" comm
.sp
.nf
.ft C
-# Backup ~/Documents into an archive named "my\-documents"
+# Backup ~/Documents into an archive named \(dqmy\-documents\(dq
$ borg create /path/to/repo::my\-documents ~/Documents
# same, but list all files as we process them
@@ -290,15 +290,15 @@ $ borg create /path/to/repo::my\-files \e
$ borg create /path/to/repo::my\-files /home \e
\-\-exclude \(aqsh:home/*/.thumbnails\(aq
-# Backup the root filesystem into an archive named "root\-YYYY\-MM\-DD"
+# Backup the root filesystem into an archive named \(dqroot\-YYYY\-MM\-DD\(dq
# use zlib compression (good, but slow) \- default is lz4 (fast, low compression ratio)
$ borg create \-C zlib,6 \-\-one\-file\-system /path/to/repo::root\-{now:%Y\-%m\-%d} /
-# Backup onto a remote host ("push" style) via ssh to port 2222,
-# logging in as user "borg" and storing into /path/to/repo
+# Backup onto a remote host (\(dqpush\(dq style) via ssh to port 2222,
+# logging in as user \(dqborg\(dq and storing into /path/to/repo
$ borg create ssh://borg@backup.example.org:2222/path/to/repo::{fqdn}\-root\-{now} /
-# Backup a remote host locally ("pull" style) using sshfs
+# Backup a remote host locally (\(dqpull\(dq style) using sshfs
$ mkdir sshfs\-mount
$ sshfs root@example.com:/ sshfs\-mount
$ cd sshfs\-mount
@@ -341,7 +341,7 @@ $ borg create /path/to/repo::{hostname}\-{user}\-{now:%Y\-%m\-%dT%H:%M:%S.%f} ~
# Backing up relative paths by moving into the correct directory first
$ cd /home/user/Documents
-# The root directory of the archive will be "projectA"
+# The root directory of the archive will be \(dqprojectA\(dq
$ borg create /path/to/repo::daily\-projectA\-{now:%Y\-%m\-%d} projectA
# Use external command to determine files to archive
@@ -352,7 +352,7 @@ $ borg create \-\-paths\-from\-command /path/to/repo::joes\-files \-\- find /srv
# Use \-\-paths\-from\-stdin with \-\-paths\-delimiter (for example, for filenames with newlines in them)
$ find ~ \-size \-1000k \-print0 | borg create \e
\-\-paths\-from\-stdin \e
- \-\-paths\-delimiter "\e0" \e
+ \-\-paths\-delimiter \(dq\e0\(dq \e
/path/to/repo::smallfiles\-handle\-newline
.ft P
.fi
@@ -395,7 +395,7 @@ If you are interested only in a subset of that output, you can give e.g.
below).
.sp
A uppercase character represents the status of a regular file relative to the
-"files" cache (not relative to the repo \-\- this is an issue if the files cache
+\(dqfiles\(dq cache (not relative to the repo \-\- this is an issue if the files cache
is not used). Metadata is stored in any case and for \(aqA\(aq and \(aqM\(aq also new data
chunks are stored. For \(aqU\(aq all data chunks refer to already existing chunks.
.INDENT 0.0
diff --git a/docs/man/borg-delete.1 b/docs/man/borg-delete.1
index 4f3d5064..6431669e 100644
--- a/docs/man/borg-delete.1
+++ b/docs/man/borg-delete.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "BORG-DELETE" 1 "2022-08-20" "" "borg backup tool"
+.TH "BORG-DELETE" 1 "2022-12-24" "" "borg backup tool"
.SH NAME
borg-delete \- Delete an existing repository or archives
.SH SYNOPSIS
@@ -48,15 +48,13 @@ with the \fB\-\-cache\-only\fP option, or keep the security info with the
When in doubt, use \fB\-\-dry\-run \-\-list\fP to see what would be deleted.
.sp
When using \fB\-\-stats\fP, you will get some statistics about how much data was
-deleted \- the "Deleted data" deduplicated size there is most interesting as
+deleted \- the \(dqDeleted data\(dq deduplicated size there is most interesting as
that is how much your repository will shrink.
-Please note that the "All archives" stats refer to the state after deletion.
+Please note that the \(dqAll archives\(dq stats refer to the state after deletion.
.sp
-You can delete multiple archives by specifying their common prefix, if they
-have one, using the \fB\-\-prefix PREFIX\fP option. You can also specify a shell
-pattern to match multiple archives using the \fB\-\-glob\-archives GLOB\fP option
-(for more info on these patterns, see \fIborg_patterns\fP). Note that these
-two options are mutually exclusive.
+You can delete multiple archives by specifying a shell pattern to match
+multiple archives using the \fB\-\-glob\-archives GLOB\fP option (for more info on
+these patterns, see \fIborg_patterns\fP).
.sp
To avoid accidentally deleting archives, especially when using glob patterns,
it might be helpful to use the \fB\-\-dry\-run\fP to test out the command without
@@ -73,7 +71,7 @@ repository or archive to delete
.B ARCHIVE
archives to delete
.UNINDENT
-.SS optional arguments
+.SS options
.INDENT 0.0
.TP
.B \-n\fP,\fB \-\-dry\-run
@@ -104,10 +102,10 @@ write checkpoint every SECONDS seconds (Default: 1800)
.INDENT 0.0
.TP
.BI \-P \ PREFIX\fR,\fB \ \-\-prefix \ PREFIX
-only consider archive names starting with this prefix.
+only consider archive names starting with this prefix. (deprecated)
.TP
.BI \-a \ GLOB\fR,\fB \ \-\-glob\-archives \ GLOB
-only consider archive names matching the glob. sh: rules apply, see "borg help patterns". \fB\-\-prefix\fP and \fB\-\-glob\-archives\fP are mutually exclusive.
+only consider archive names matching the glob. sh: rules apply, see \(dqborg help patterns\(dq.
.TP
.BI \-\-sort\-by \ KEYS
Comma\-separated list of sorting keys; valid keys are: timestamp, name, id; default is: timestamp
@@ -129,10 +127,10 @@ $ borg delete /path/to/repo::Monday
# actually free disk space:
$ borg compact /path/to/repo
-# delete all archives whose names begin with the machine\(aqs hostname followed by "\-"
-$ borg delete \-\-prefix \(aq{hostname}\-\(aq /path/to/repo
+# delete all archives whose names begin with the machine\(aqs hostname followed by \(dq\-\(dq
+$ borg delete \-\-glob\-archives \(aq{hostname}\-*\(aq /path/to/repo
-# delete all archives whose names contain "\-2012\-"
+# delete all archives whose names contain \(dq\-2012\-\(dq
$ borg delete \-\-glob\-archives \(aq*\-2012\-*\(aq /path/to/repo
# see what would be deleted if delete was run without \-\-dry\-run
diff --git a/docs/man/borg-diff.1 b/docs/man/borg-diff.1
index 97144624..28ca936e 100644
--- a/docs/man/borg-diff.1
+++ b/docs/man/borg-diff.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "BORG-DIFF" 1 "2022-08-20" "" "borg backup tool"
+.TH "BORG-DIFF" 1 "2022-12-24" "" "borg backup tool"
.SH NAME
borg-diff \- Diff contents of two archives
.SH SYNOPSIS
@@ -66,7 +66,7 @@ ARCHIVE2 name (no repository location allowed)
.B PATH
paths of items inside the archives to compare; patterns are supported
.UNINDENT
-.SS optional arguments
+.SS options
.INDENT 0.0
.TP
.B \-\-numeric\-owner
@@ -114,10 +114,10 @@ $ touch file3
$ borg create ../testrepo::archive1 .
$ chmod a+x file1
-$ echo "something" >> file2
+$ echo \(dqsomething\(dq >> file2
$ borg create ../testrepo::archive2 .
-$ echo "testing 123" >> file1
+$ echo \(dqtesting 123\(dq >> file1
$ rm file3
$ touch file4
$ borg create ../testrepo::archive3 .
@@ -139,10 +139,10 @@ added 0 B file4
removed 0 B file3
$ borg diff \-\-json\-lines testrepo::archive1 archive3
-{"path": "file1", "changes": [{"type": "modified", "added": 17, "removed": 5}, {"type": "mode", "old_mode": "\-rw\-r\-\-r\-\-", "new_mode": "\-rwxr\-xr\-x"}]}
-{"path": "file2", "changes": [{"type": "modified", "added": 135, "removed": 252}]}
-{"path": "file4", "changes": [{"type": "added", "size": 0}]}
-{"path": "file3", "changes": [{"type": "removed", "size": 0}]
+{\(dqpath\(dq: \(dqfile1\(dq, \(dqchanges\(dq: [{\(dqtype\(dq: \(dqmodified\(dq, \(dqadded\(dq: 17, \(dqremoved\(dq: 5}, {\(dqtype\(dq: \(dqmode\(dq, \(dqold_mode\(dq: \(dq\-rw\-r\-\-r\-\-\(dq, \(dqnew_mode\(dq: \(dq\-rwxr\-xr\-x\(dq}]}
+{\(dqpath\(dq: \(dqfile2\(dq, \(dqchanges\(dq: [{\(dqtype\(dq: \(dqmodified\(dq, \(dqadded\(dq: 135, \(dqremoved\(dq: 252}]}
+{\(dqpath\(dq: \(dqfile4\(dq, \(dqchanges\(dq: [{\(dqtype\(dq: \(dqadded\(dq, \(dqsize\(dq: 0}]}
+{\(dqpath\(dq: \(dqfile3\(dq, \(dqchanges\(dq: [{\(dqtype\(dq: \(dqremoved\(dq, \(dqsize\(dq: 0}]
.ft P
.fi
.UNINDENT
diff --git a/docs/man/borg-export-tar.1 b/docs/man/borg-export-tar.1
index cba5c050..54b48ce5 100644
--- a/docs/man/borg-export-tar.1
+++ b/docs/man/borg-export-tar.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "BORG-EXPORT-TAR" 1 "2022-08-20" "" "borg backup tool"
+.TH "BORG-EXPORT-TAR" 1 "2022-12-24" "" "borg backup tool"
.SH NAME
borg-export-tar \- Export archive contents as a tarball
.SH SYNOPSIS
@@ -50,7 +50,7 @@ before writing it to FILE:
.IP \(bu 2
\&.tar.xz or .txz: xz
.IP \(bu 2
-\&.tar.zstd: zstd
+\&.tar.zstd or .tar.zst: zstd
.IP \(bu 2
\&.tar.lz4: lz4
.UNINDENT
@@ -86,12 +86,12 @@ See \fIborg\-common(1)\fP for common options of Borg commands.
archive to export
.TP
.B FILE
-output tar file. "\-" to write to stdout instead.
+output tar file. \(dq\-\(dq to write to stdout instead.
.TP
.B PATH
paths to extract; patterns are supported
.UNINDENT
-.SS optional arguments
+.SS options
.INDENT 0.0
.TP
.B \-\-tar\-filter
@@ -131,14 +131,14 @@ $ borg export\-tar /path/to/repo::Monday Monday.tar
$ borg export\-tar /path/to/repo::Monday Monday.tar.gz \-\-exclude \(aq*.so\(aq
# use higher compression level with gzip
-$ borg export\-tar \-\-tar\-filter="gzip \-9" testrepo::linux Monday.tar.gz
+$ borg export\-tar \-\-tar\-filter=\(dqgzip \-9\(dq testrepo::linux Monday.tar.gz
# export a tar, but instead of storing it on disk,
# upload it to a remote site using curl.
$ borg export\-tar /path/to/repo::Monday \- | curl \-\-data\-binary @\- https://somewhere/to/POST
-# remote extraction via "tarpipe"
-$ borg export\-tar /path/to/repo::Monday \- | ssh somewhere "cd extracted; tar x"
+# remote extraction via \(dqtarpipe\(dq
+$ borg export\-tar /path/to/repo::Monday \- | ssh somewhere \(dqcd extracted; tar x\(dq
.ft P
.fi
.UNINDENT
diff --git a/docs/man/borg-extract.1 b/docs/man/borg-extract.1
index ecca8a82..1dc992dd 100644
--- a/docs/man/borg-extract.1
+++ b/docs/man/borg-extract.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "BORG-EXTRACT" 1 "2022-08-20" "" "borg backup tool"
+.TH "BORG-EXTRACT" 1 "2022-12-24" "" "borg backup tool"
.SH NAME
borg-extract \- Extract archive contents
.SH SYNOPSIS
@@ -52,7 +52,7 @@ pass over the archive metadata.
\fBNOTE:\fP
.INDENT 0.0
.INDENT 3.5
-Currently, extract always writes into the current working directory ("."),
+Currently, extract always writes into the current working directory (\(dq.\(dq),
so make sure you \fBcd\fP to the right place before calling \fBborg extract\fP\&.
.sp
When parent directories are not extracted (because of using file/directory selection
@@ -72,7 +72,7 @@ archive to extract
.B PATH
paths to extract; patterns are supported
.UNINDENT
-.SS optional arguments
+.SS options
.INDENT 0.0
.TP
.B \-\-list
@@ -138,10 +138,10 @@ $ borg extract \-\-list /path/to/repo::my\-files
# Verify whether an archive could be successfully extracted, but do not write files to disk
$ borg extract \-\-dry\-run /path/to/repo::my\-files
-# Extract the "src" directory
+# Extract the \(dqsrc\(dq directory
$ borg extract /path/to/repo::my\-files home/USERNAME/src
-# Extract the "src" directory but exclude object files
+# Extract the \(dqsrc\(dq directory but exclude object files
$ borg extract /path/to/repo::my\-files home/USERNAME/src \-\-exclude \(aq*.o\(aq
# Restore a raw device (must not be active/in use/mounted at that time)
diff --git a/docs/man/borg-import-tar.1 b/docs/man/borg-import-tar.1
index 4b2a2b72..ec469972 100644
--- a/docs/man/borg-import-tar.1
+++ b/docs/man/borg-import-tar.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "BORG-IMPORT-TAR" 1 "2022-08-20" "" "borg backup tool"
+.TH "BORG-IMPORT-TAR" 1 "2022-12-24" "" "borg backup tool"
.SH NAME
borg-import-tar \- Create a backup archive from a tarball
.SH SYNOPSIS
@@ -49,7 +49,7 @@ based on its file extension and pipe the file through an appropriate filter:
.IP \(bu 2
\&.tar.xz or .txz: xz \-d
.IP \(bu 2
-\&.tar.zstd: zstd \-d
+\&.tar.zstd or .tar.zst: zstd \-d
.IP \(bu 2
\&.tar.lz4: lz4 \-d
.UNINDENT
@@ -80,9 +80,9 @@ See \fIborg\-common(1)\fP for common options of Borg commands.
name of archive to create (must be also a valid directory name)
.TP
.B TARFILE
-input tar file. "\-" to read from stdin instead.
+input tar file. \(dq\-\(dq to read from stdin instead.
.UNINDENT
-.SS optional arguments
+.SS options
.INDENT 0.0
.TP
.B \-\-tar\-filter
@@ -116,7 +116,7 @@ write checkpoint every SECONDS seconds (Default: 1800)
specify the chunker parameters (ALGO, CHUNK_MIN_EXP, CHUNK_MAX_EXP, HASH_MASK_BITS, HASH_WINDOW_SIZE). default: buzhash,19,23,21,4095
.TP
.BI \-C \ COMPRESSION\fR,\fB \ \-\-compression \ COMPRESSION
-select compression algorithm, see the output of the "borg help compression" command for details.
+select compression algorithm, see the output of the \(dqborg help compression\(dq command for details.
.UNINDENT
.SH SEE ALSO
.sp
diff --git a/docs/man/borg-info.1 b/docs/man/borg-info.1
index 3249d677..8932ab00 100644
--- a/docs/man/borg-info.1
+++ b/docs/man/borg-info.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "BORG-INFO" 1 "2022-08-20" "" "borg backup tool"
+.TH "BORG-INFO" 1 "2022-12-24" "" "borg backup tool"
.SH NAME
borg-info \- Show archive details such as disk space used
.SH SYNOPSIS
@@ -38,7 +38,7 @@ borg [common options] info [options] [REPOSITORY_OR_ARCHIVE]
This command displays detailed information about the specified archive or repository.
.sp
Please note that the deduplicated sizes of the individual archives do not add
-up to the deduplicated size of the repository ("all archives"), because the two
+up to the deduplicated size of the repository (\(dqall archives\(dq), because the two
are meaning different things:
.sp
This archive / deduplicated size = amount of data stored ONLY for this archive
@@ -59,7 +59,7 @@ See \fIborg\-common(1)\fP for common options of Borg commands.
.B REPOSITORY_OR_ARCHIVE
repository or archive to display information about
.UNINDENT
-.SS optional arguments
+.SS options
.INDENT 0.0
.TP
.B \-\-json
@@ -69,10 +69,10 @@ format output as JSON
.INDENT 0.0
.TP
.BI \-P \ PREFIX\fR,\fB \ \-\-prefix \ PREFIX
-only consider archive names starting with this prefix.
+only consider archive names starting with this prefix. (deprecated)
.TP
.BI \-a \ GLOB\fR,\fB \ \-\-glob\-archives \ GLOB
-only consider archive names matching the glob. sh: rules apply, see "borg help patterns". \fB\-\-prefix\fP and \fB\-\-glob\-archives\fP are mutually exclusive.
+only consider archive names matching the glob. sh: rules apply, see \(dqborg help patterns\(dq.
.TP
.BI \-\-sort\-by \ KEYS
Comma\-separated list of sorting keys; valid keys are: timestamp, name, id; default is: timestamp
diff --git a/docs/man/borg-init.1 b/docs/man/borg-init.1
index 4dc688f3..9d31b2b2 100644
--- a/docs/man/borg-init.1
+++ b/docs/man/borg-init.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "BORG-INIT" 1 "2022-08-20" "" "borg backup tool"
+.TH "BORG-INIT" 1 "2022-12-24" "" "borg backup tool"
.SH NAME
borg-init \- Initialize an empty repository
.SH SYNOPSIS
@@ -82,7 +82,7 @@ This is why it is essential to use a secure passphrase.
Encrypt and sign your backups to prevent anyone from reading or forging them unless they
have the key and know the passphrase. Make sure to keep a backup of
your key \fBoutside\fP the repository \- do not lock yourself out by
-"leaving your keys inside your car" (see \fIborg_key_export\fP).
+\(dqleaving your keys inside your car\(dq (see \fIborg_key_export\fP).
For remote backups the encryption is done locally \- the remote machine
never sees your passphrase, your unencrypted key or your unencrypted files.
Chunking and id generation are also based on your key to improve
@@ -119,7 +119,7 @@ Only use \fB\-\-encryption none\fP if you are OK with anyone who has access to
your repository being able to read your backups and tamper with their
contents without you noticing.
.sp
-If you want "passphrase and having\-the\-key" security, use \fB\-\-encryption keyfile\fP\&.
+If you want \(dqpassphrase and having\-the\-key\(dq security, use \fB\-\-encryption keyfile\fP\&.
The key will be stored in your home directory (in \fB~/.config/borg/keys\fP).
.sp
If you do \fBnot\fP want to encrypt the contents of your backups, but still
@@ -223,7 +223,7 @@ See \fIborg\-common(1)\fP for common options of Borg commands.
.B REPOSITORY
repository to create
.UNINDENT
-.SS optional arguments
+.SS options
.INDENT 0.0
.TP
.BI \-e \ MODE\fR,\fB \ \-\-encryption \ MODE
diff --git a/docs/man/borg-key-change-passphrase.1 b/docs/man/borg-key-change-passphrase.1
index 6200e3f4..cdd72d81 100644
--- a/docs/man/borg-key-change-passphrase.1
+++ b/docs/man/borg-key-change-passphrase.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "BORG-KEY-CHANGE-PASSPHRASE" 1 "2022-08-20" "" "borg backup tool"
+.TH "BORG-KEY-CHANGE-PASSPHRASE" 1 "2022-12-24" "" "borg backup tool"
.SH NAME
borg-key-change-passphrase \- Change repository key file passphrase
.SH SYNOPSIS
@@ -56,11 +56,11 @@ REPOSITORY
.ft C
# Create a key file protected repository
$ borg init \-\-encryption=keyfile \-v /path/to/repo
-Initializing repository at "/path/to/repo"
+Initializing repository at \(dq/path/to/repo\(dq
Enter new passphrase:
Enter same passphrase again:
Remember your passphrase. Your data will be inaccessible without it.
-Key in "/root/.config/borg/keys/mnt_backup" created.
+Key in \(dq/root/.config/borg/keys/mnt_backup\(dq created.
Keep this key safe. Your data will be inaccessible without it.
Synchronizing chunks cache...
Archives: 0, w/ cached Idx: 0, w/ outdated Idx: 0, w/o cached Idx: 0.
@@ -90,9 +90,9 @@ Fully automated using environment variables:
.nf
.ft C
$ BORG_NEW_PASSPHRASE=old borg init \-e=repokey repo
-# now "old" is the current passphrase.
+# now \(dqold\(dq is the current passphrase.
$ BORG_PASSPHRASE=old BORG_NEW_PASSPHRASE=new borg key change\-passphrase repo
-# now "new" is the current passphrase.
+# now \(dqnew\(dq is the current passphrase.
.ft P
.fi
.UNINDENT
diff --git a/docs/man/borg-key-export.1 b/docs/man/borg-key-export.1
index 06c3f59d..f6acad02 100644
--- a/docs/man/borg-key-export.1
+++ b/docs/man/borg-key-export.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "BORG-KEY-EXPORT" 1 "2022-08-20" "" "borg backup tool"
+.TH "BORG-KEY-EXPORT" 1 "2022-12-24" "" "borg backup tool"
.SH NAME
borg-key-export \- Export the repository key for backup
.SH SYNOPSIS
@@ -85,7 +85,7 @@ REPOSITORY
.B PATH
where to store the backup
.UNINDENT
-.SS optional arguments
+.SS options
.INDENT 0.0
.TP
.B \-\-paper
diff --git a/docs/man/borg-key-import.1 b/docs/man/borg-key-import.1
index f23af65a..d8cb1cf3 100644
--- a/docs/man/borg-key-import.1
+++ b/docs/man/borg-key-import.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "BORG-KEY-IMPORT" 1 "2022-08-20" "" "borg backup tool"
+.TH "BORG-KEY-IMPORT" 1 "2022-12-24" "" "borg backup tool"
.SH NAME
borg-key-import \- Import the repository key from backup
.SH SYNOPSIS
@@ -60,7 +60,7 @@ REPOSITORY
.B PATH
path to the backup (\(aq\-\(aq to read from stdin)
.UNINDENT
-.SS optional arguments
+.SS options
.INDENT 0.0
.TP
.B \-\-paper
diff --git a/docs/man/borg-key-migrate-to-repokey.1 b/docs/man/borg-key-migrate-to-repokey.1
index 33981408..72b83278 100644
--- a/docs/man/borg-key-migrate-to-repokey.1
+++ b/docs/man/borg-key-migrate-to-repokey.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "BORG-KEY-MIGRATE-TO-REPOKEY" 1 "2022-08-20" "" "borg backup tool"
+.TH "BORG-KEY-MIGRATE-TO-REPOKEY" 1 "2022-12-24" "" "borg backup tool"
.SH NAME
borg-key-migrate-to-repokey \- Migrate passphrase -> repokey
.SH SYNOPSIS
diff --git a/docs/man/borg-key.1 b/docs/man/borg-key.1
index 713c6643..2a6b87a3 100644
--- a/docs/man/borg-key.1
+++ b/docs/man/borg-key.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "BORG-KEY" 1 "2022-08-20" "" "borg backup tool"
+.TH "BORG-KEY" 1 "2022-12-24" "" "borg backup tool"
.SH NAME
borg-key \- Manage a keyfile or repokey of a repository
.SH SYNOPSIS
diff --git a/docs/man/borg-list.1 b/docs/man/borg-list.1
index b33749e5..9a416df3 100644
--- a/docs/man/borg-list.1
+++ b/docs/man/borg-list.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "BORG-LIST" 1 "2022-08-20" "" "borg backup tool"
+.TH "BORG-LIST" 1 "2022-12-24" "" "borg backup tool"
.SH NAME
borg-list \- List archive or repository contents
.SH SYNOPSIS
@@ -50,7 +50,7 @@ repository or archive to list contents of
.B PATH
paths to list; patterns are supported
.UNINDENT
-.SS optional arguments
+.SS options
.INDENT 0.0
.TP
.B \-\-consider\-checkpoints
@@ -60,22 +60,22 @@ Show checkpoint archives in the repository contents list (default: hidden).
only print file/directory names, nothing else
.TP
.BI \-\-format \ FORMAT
-specify format for file or archive listing (default for files: "{mode} {user:6} {group:6} {size:8} {mtime} {path}{extra}{NL}"; for archives: "{archive:<36} {time} [{id}]{NL}")
+specify format for file or archive listing (default for files: \(dq{mode} {user:6} {group:6} {size:8} {mtime} {path}{extra}{NL}\(dq; for archives: \(dq{archive:<36} {time} [{id}]{NL}\(dq)
.TP
.B \-\-json
-Only valid for listing repository contents. Format output as JSON. The form of \fB\-\-format\fP is ignored, but keys used in it are added to the JSON output. Some keys are always present. Note: JSON can only represent text. A "barchive" key is therefore not available.
+Only valid for listing repository contents. Format output as JSON. The form of \fB\-\-format\fP is ignored, but keys used in it are added to the JSON output. Some keys are always present. Note: JSON can only represent text. A \(dqbarchive\(dq key is therefore not available.
.TP
.B \-\-json\-lines
-Only valid for listing archive contents. Format output as JSON Lines. The form of \fB\-\-format\fP is ignored, but keys used in it are added to the JSON output. Some keys are always present. Note: JSON can only represent text. A "bpath" key is therefore not available.
+Only valid for listing archive contents. Format output as JSON Lines. The form of \fB\-\-format\fP is ignored, but keys used in it are added to the JSON output. Some keys are always present. Note: JSON can only represent text. A \(dqbpath\(dq key is therefore not available.
.UNINDENT
.SS Archive filters
.INDENT 0.0
.TP
.BI \-P \ PREFIX\fR,\fB \ \-\-prefix \ PREFIX
-only consider archive names starting with this prefix.
+only consider archive names starting with this prefix. (deprecated)
.TP
.BI \-a \ GLOB\fR,\fB \ \-\-glob\-archives \ GLOB
-only consider archive names matching the glob. sh: rules apply, see "borg help patterns". \fB\-\-prefix\fP and \fB\-\-glob\-archives\fP are mutually exclusive.
+only consider archive names matching the glob. sh: rules apply, see \(dqborg help patterns\(dq.
.TP
.BI \-\-sort\-by \ KEYS
Comma\-separated list of sorting keys; valid keys are: timestamp, name, id; default is: timestamp
@@ -122,14 +122,14 @@ lrwxrwxrwx root root 0 Fri, 2015\-03\-27 20:24:26 bin/bzcmp \-> bzdif
\-rwxr\-xr\-x root root 2140 Fri, 2015\-03\-27 20:24:22 bin/bzdiff
\&...
-$ borg list /path/to/repo::root\-2016\-02\-15 \-\-pattern "\- bin/ba*"
+$ borg list /path/to/repo::root\-2016\-02\-15 \-\-pattern \(dq\- bin/ba*\(dq
drwxr\-xr\-x root root 0 Mon, 2016\-02\-15 17:44:27 .
drwxrwxr\-x root root 0 Mon, 2016\-02\-15 19:04:49 bin
lrwxrwxrwx root root 0 Fri, 2015\-03\-27 20:24:26 bin/bzcmp \-> bzdiff
\-rwxr\-xr\-x root root 2140 Fri, 2015\-03\-27 20:24:22 bin/bzdiff
\&...
-$ borg list /path/to/repo::archiveA \-\-format="{mode} {user:6} {group:6} {size:8d} {isomtime} {path}{extra}{NEWLINE}"
+$ borg list /path/to/repo::archiveA \-\-format=\(dq{mode} {user:6} {group:6} {size:8d} {isomtime} {path}{extra}{NEWLINE}\(dq
drwxrwxr\-x user user 0 Sun, 2015\-02\-01 11:00:00 .
drwxrwxr\-x user user 0 Sun, 2015\-02\-01 11:00:00 code
drwxrwxr\-x user user 0 Sun, 2015\-02\-01 11:00:00 code/myproject
@@ -207,7 +207,7 @@ Keys available only when listing archives in a repository:
.IP \(bu 2
archive: archive name interpreted as text (might be missing non\-text characters, see barchive)
.IP \(bu 2
-name: alias of "archive"
+name: alias of \(dqarchive\(dq
.IP \(bu 2
barchive: verbatim archive name, can contain any character except NUL
.IP \(bu 2
@@ -219,7 +219,7 @@ id: internal ID of the archive
.IP \(bu 2
start: time (start) of creation of the archive
.IP \(bu 2
-time: alias of "start"
+time: alias of \(dqstart\(dq
.IP \(bu 2
end: time (end) of creation of the archive
.IP \(bu 2
@@ -309,9 +309,9 @@ archiveid
.IP \(bu 2
archivename
.IP \(bu 2
-extra: prepends {source} with " \-> " for soft links and " link to " for hard links
+extra: prepends {source} with \(dq \-> \(dq for soft links and \(dq link to \(dq for hard links
.IP \(bu 2
-health: either "healthy" (file ok) or "broken" (if file has all\-zero replacement chunks)
+health: either \(dqhealthy\(dq (file ok) or \(dqbroken\(dq (if file has all\-zero replacement chunks)
.UNINDENT
.SH SEE ALSO
.sp
diff --git a/docs/man/borg-mount.1 b/docs/man/borg-mount.1
index 977b7bef..633a2b82 100644
--- a/docs/man/borg-mount.1
+++ b/docs/man/borg-mount.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "BORG-MOUNT" 1 "2022-08-20" "" "borg backup tool"
+.TH "BORG-MOUNT" 1 "2022-12-24" "" "borg backup tool"
.SH NAME
borg-mount \- Mount archive or an entire repository as a FUSE filesystem
.SH SYNOPSIS
@@ -76,9 +76,9 @@ allow_damaged_files: by default damaged files (where missing chunks were
replaced with runs of zeros by borg check \fB\-\-repair\fP) are not readable and
return EIO (I/O error). Set this option to read such files.
.IP \(bu 2
-ignore_permissions: for security reasons the "default_permissions" mount
-option is internally enforced by borg. "ignore_permissions" can be given to
-not enforce "default_permissions".
+ignore_permissions: for security reasons the \(dqdefault_permissions\(dq mount
+option is internally enforced by borg. \(dqignore_permissions\(dq can be given to
+not enforce \(dqdefault_permissions\(dq.
.UNINDENT
.sp
The BORG_MOUNT_DATA_CACHE_ENTRIES environment variable is meant for advanced users
@@ -107,7 +107,7 @@ where to mount filesystem
.B PATH
paths to extract; patterns are supported
.UNINDENT
-.SS optional arguments
+.SS options
.INDENT 0.0
.TP
.B \-\-consider\-checkpoints
@@ -129,10 +129,10 @@ use numeric user and group identifiers from archive(s)
.INDENT 0.0
.TP
.BI \-P \ PREFIX\fR,\fB \ \-\-prefix \ PREFIX
-only consider archive names starting with this prefix.
+only consider archive names starting with this prefix. (deprecated)
.TP
.BI \-a \ GLOB\fR,\fB \ \-\-glob\-archives \ GLOB
-only consider archive names matching the glob. sh: rules apply, see "borg help patterns". \fB\-\-prefix\fP and \fB\-\-glob\-archives\fP are mutually exclusive.
+only consider archive names matching the glob. sh: rules apply, see \(dqborg help patterns\(dq.
.TP
.BI \-\-sort\-by \ KEYS
Comma\-separated list of sorting keys; valid keys are: timestamp, name, id; default is: timestamp
diff --git a/docs/man/borg-patterns.1 b/docs/man/borg-patterns.1
index 04e70c16..1e425819 100644
--- a/docs/man/borg-patterns.1
+++ b/docs/man/borg-patterns.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "BORG-PATTERNS" 1 "2022-08-20" "" "borg backup tool"
+.TH "BORG-PATTERNS" 1 "2022-12-24" "" "borg backup tool"
.SH NAME
borg-patterns \- Details regarding patterns
.SH DESCRIPTION
@@ -248,7 +248,7 @@ The patterns.lst file could look like that:
.sp
.nf
.ft C
-# "sh:" pattern style is the default, so the following line is not needed:
+# \(dqsh:\(dq pattern style is the default, so the following line is not needed:
P sh
R /
# can be rebuild
diff --git a/docs/man/borg-placeholders.1 b/docs/man/borg-placeholders.1
index 5cbcf44f..1e182726 100644
--- a/docs/man/borg-placeholders.1
+++ b/docs/man/borg-placeholders.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "BORG-PLACEHOLDERS" 1 "2022-08-20" "" "borg backup tool"
+.TH "BORG-PLACEHOLDERS" 1 "2022-12-24" "" "borg backup tool"
.SH NAME
borg-placeholders \- Details regarding placeholders
.SH DESCRIPTION
@@ -92,7 +92,7 @@ Examples:
.ft C
borg create /path/to/repo::{hostname}\-{user}\-{utcnow} ...
borg create /path/to/repo::{hostname}\-{now:%Y\-%m\-%d_%H:%M:%S} ...
-borg prune \-\-prefix \(aq{hostname}\-\(aq ...
+borg prune \-\-glob\-archives \(aq{hostname}\-*\(aq ...
.ft P
.fi
.UNINDENT
diff --git a/docs/man/borg-prune.1 b/docs/man/borg-prune.1
index 85aa0687..ddcfa61c 100644
--- a/docs/man/borg-prune.1
+++ b/docs/man/borg-prune.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "BORG-PRUNE" 1 "2022-08-20" "" "borg backup tool"
+.TH "BORG-PRUNE" 1 "2022-12-24" "" "borg backup tool"
.SH NAME
borg-prune \- Prune repository archives according to specified rules
.SH SYNOPSIS
@@ -61,10 +61,10 @@ If you have multiple sequences of archives with different data sets (e.g.
from different machines) in one shared repository, use one prune call per
data set that matches only the respective archives using the \-P option.
.sp
-The \fB\-\-keep\-within\fP option takes an argument of the form "<int><char>",
-where char is "H", "d", "w", "m", "y". For example, \fB\-\-keep\-within 2d\fP means
+The \fB\-\-keep\-within\fP option takes an argument of the form \(dq<int><char>\(dq,
+where char is \(dqH\(dq, \(dqd\(dq, \(dqw\(dq, \(dqm\(dq, \(dqy\(dq. For example, \fB\-\-keep\-within 2d\fP means
to keep all archives that were created within the past 48 hours.
-"1m" is taken to mean "31d". The archives kept with this option do not
+\(dq1m\(dq is taken to mean \(dq31d\(dq. The archives kept with this option do not
count towards the totals specified by any other options.
.sp
A good procedure is to thin out more and more the older your backups get.
@@ -85,9 +85,9 @@ keep the last N archives under the assumption that you do not create more than o
backup archive in the same second).
.sp
When using \fB\-\-stats\fP, you will get some statistics about how much data was
-deleted \- the "Deleted data" deduplicated size there is most interesting as
+deleted \- the \(dqDeleted data\(dq deduplicated size there is most interesting as
that is how much your repository will shrink.
-Please note that the "All archives" stats refer to the state after pruning.
+Please note that the \(dqAll archives\(dq stats refer to the state after pruning.
.SH OPTIONS
.sp
See \fIborg\-common(1)\fP for common options of Borg commands.
@@ -97,7 +97,7 @@ See \fIborg\-common(1)\fP for common options of Borg commands.
.B REPOSITORY
repository to prune
.UNINDENT
-.SS optional arguments
+.SS options
.INDENT 0.0
.TP
.B \-n\fP,\fB \-\-dry\-run
@@ -146,10 +146,10 @@ write checkpoint every SECONDS seconds (Default: 1800)
.INDENT 0.0
.TP
.BI \-P \ PREFIX\fR,\fB \ \-\-prefix \ PREFIX
-only consider archive names starting with this prefix.
+only consider archive names starting with this prefix. (deprecated)
.TP
.BI \-a \ GLOB\fR,\fB \ \-\-glob\-archives \ GLOB
-only consider archive names matching the glob. sh: rules apply, see "borg help patterns". \fB\-\-prefix\fP and \fB\-\-glob\-archives\fP are mutually exclusive.
+only consider archive names matching the glob. sh: rules apply, see \(dqborg help patterns\(dq.
.UNINDENT
.SH EXAMPLES
.sp
@@ -157,9 +157,9 @@ Be careful, prune is a potentially dangerous command, it will remove backup
archives.
.sp
The default of prune is to apply to \fBall archives in the repository\fP unless
-you restrict its operation to a subset of the archives using \fB\-\-prefix\fP\&.
-When using \fB\-\-prefix\fP, be careful to choose a good prefix \- e.g. do not use a
-prefix "foo" if you do not also want to match "foobar".
+you restrict its operation to a subset of the archives using \fB\-\-glob\-archives\fP\&.
+When using \fB\-\-glob\-archives\fP, be careful to choose a good matching pattern \-
+e.g. do not use \(dqfoo*\(dq if you do not also want to match \(dqfoobar\(dq.
.sp
It is strongly recommended to always run \fBprune \-v \-\-list \-\-dry\-run ...\fP
first so you will see what it would do without it actually doing anything.
@@ -173,8 +173,8 @@ first so you will see what it would do without it actually doing anything.
$ borg prune \-v \-\-list \-\-dry\-run \-\-keep\-daily=7 \-\-keep\-weekly=4 /path/to/repo
# Same as above but only apply to archive names starting with the hostname
-# of the machine followed by a "\-" character:
-$ borg prune \-v \-\-list \-\-keep\-daily=7 \-\-keep\-weekly=4 \-\-prefix=\(aq{hostname}\-\(aq /path/to/repo
+# of the machine followed by a \(dq\-\(dq character:
+$ borg prune \-v \-\-list \-\-keep\-daily=7 \-\-keep\-weekly=4 \-\-glob\-archives=\(aq{hostname}\-*\(aq /path/to/repo
# actually free disk space:
$ borg compact /path/to/repo
diff --git a/docs/man/borg-recreate.1 b/docs/man/borg-recreate.1
index 21672fc7..6302b949 100644
--- a/docs/man/borg-recreate.1
+++ b/docs/man/borg-recreate.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "BORG-RECREATE" 1 "2022-08-20" "" "borg backup tool"
+.TH "BORG-RECREATE" 1 "2022-12-24" "" "borg backup tool"
.SH NAME
borg-recreate \- Re-create archives
.SH SYNOPSIS
@@ -43,7 +43,7 @@ recreate is a potentially dangerous function and might lead to data loss
Important: Repository disk space is \fBnot\fP freed until you run \fBborg compact\fP\&.
.sp
\fB\-\-exclude\fP, \fB\-\-exclude\-from\fP, \fB\-\-exclude\-if\-present\fP, \fB\-\-keep\-exclude\-tags\fP
-and PATH have the exact same semantics as in "borg create", but they only check
+and PATH have the exact same semantics as in \(dqborg create\(dq, but they only check
for files in the archives and not in the local file system. If PATHs are specified,
the resulting archives will only contain files from these PATHs.
.sp
@@ -67,7 +67,7 @@ interpreted. See \fIlist_item_flags\fP in \fBborg create\fP for details.
.sp
The archive being recreated is only removed after the operation completes. The
archive that is built during the operation exists at the same time at
-"<ARCHIVE>.recreate". The new archive will have a different archive ID.
+\(dq<ARCHIVE>.recreate\(dq. The new archive will have a different archive ID.
.sp
With \fB\-\-target\fP the original archive is not replaced, instead a new archive is created.
.sp
@@ -97,7 +97,7 @@ repository or archive to recreate
.B PATH
paths to recreate; patterns are supported
.UNINDENT
-.SS optional arguments
+.SS options
.INDENT 0.0
.TP
.B \-\-list
@@ -152,10 +152,10 @@ add a comment text to the archive
manually specify the archive creation date/time (UTC, yyyy\-mm\-ddThh:mm:ss format). alternatively, give a reference file/directory.
.TP
.BI \-C \ COMPRESSION\fR,\fB \ \-\-compression \ COMPRESSION
-select compression algorithm, see the output of the "borg help compression" command for details.
+select compression algorithm, see the output of the \(dqborg help compression\(dq command for details.
.TP
.BI \-\-recompress \ MODE
-recompress data chunks according to \fIMODE\fP and \fB\-\-compression\fP\&. Possible modes are \fIif\-different\fP: recompress if current compression is with a different compression algorithm (the level is not considered); \fIalways\fP: recompress even if current compression is with the same compression algorithm (use this to change the compression level); and \fInever\fP: do not recompress (use this option to explicitly prevent recompression). If no MODE is given, \fIif\-different\fP will be used. Not passing \-\-recompress is equivalent to "\-\-recompress never".
+recompress data chunks according to \fIMODE\fP and \fB\-\-compression\fP\&. Possible modes are \fIif\-different\fP: recompress if current compression is with a different compression algorithm (the level is not considered); \fIalways\fP: recompress even if current compression is with the same compression algorithm (use this to change the compression level); and \fInever\fP: do not recompress (use this option to explicitly prevent recompression). If no MODE is given, \fIif\-different\fP will be used. Not passing \-\-recompress is equivalent to \(dq\-\-recompress never\(dq.
.TP
.BI \-\-chunker\-params \ PARAMS
specify the chunker parameters (ALGO, CHUNK_MIN_EXP, CHUNK_MAX_EXP, HASH_MASK_BITS, HASH_WINDOW_SIZE) or \fIdefault\fP to use the current defaults. default: buzhash,19,23,21,4095
@@ -182,13 +182,13 @@ $ borg recreate /mnt/backup::archive \-\-recompress \-\-compression zlib,9
$ borg recreate /mnt/backup \-\-exclude home/icke/Pictures/drunk_photos
# Change archive comment
-$ borg create \-\-comment "This is a comment" /mnt/backup::archivename ~
+$ borg create \-\-comment \(dqThis is a comment\(dq /mnt/backup::archivename ~
$ borg info /mnt/backup::archivename
Name: archivename
Fingerprint: ...
Comment: This is a comment
\&...
-$ borg recreate \-\-comment "This is a better comment" /mnt/backup::archivename
+$ borg recreate \-\-comment \(dqThis is a better comment\(dq /mnt/backup::archivename
$ borg info /mnt/backup::archivename
Name: archivename
Fingerprint: ...
diff --git a/docs/man/borg-rename.1 b/docs/man/borg-rename.1
index 4a039b02..c18a2c14 100644
--- a/docs/man/borg-rename.1
+++ b/docs/man/borg-rename.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "BORG-RENAME" 1 "2022-08-20" "" "borg backup tool"
+.TH "BORG-RENAME" 1 "2022-12-24" "" "borg backup tool"
.SH NAME
borg-rename \- Rename an existing archive
.SH SYNOPSIS
diff --git a/docs/man/borg-serve.1 b/docs/man/borg-serve.1
index 0a57f18a..83c5219d 100644
--- a/docs/man/borg-serve.1
+++ b/docs/man/borg-serve.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "BORG-SERVE" 1 "2022-08-20" "" "borg backup tool"
+.TH "BORG-SERVE" 1 "2022-12-24" "" "borg backup tool"
.SH NAME
borg-serve \- Start in server mode. This command is usually not used manually.
.SH SYNOPSIS
@@ -39,7 +39,7 @@ This command starts a repository server process. This command is usually not use
.SH OPTIONS
.sp
See \fIborg\-common(1)\fP for common options of Borg commands.
-.SS optional arguments
+.SS options
.INDENT 0.0
.TP
.BI \-\-restrict\-to\-path \ PATH
@@ -83,11 +83,11 @@ locations like \fB/etc/environment\fP or in the forced command itself (example b
# Use key options to disable unneeded and potentially dangerous SSH functionality.
# This will help to secure an automated remote backup system.
$ cat ~/.ssh/authorized_keys
-command="borg serve \-\-restrict\-to\-path /path/to/repo",restrict ssh\-rsa AAAAB3[...]
+command=\(dqborg serve \-\-restrict\-to\-path /path/to/repo\(dq,restrict ssh\-rsa AAAAB3[...]
-# Set a BORG_XXX environment variable on the "borg serve" side
+# Set a BORG_XXX environment variable on the \(dqborg serve\(dq side
$ cat ~/.ssh/authorized_keys
-command="export BORG_XXX=value; borg serve [...]",restrict ssh\-rsa [...]
+command=\(dqexport BORG_XXX=value; borg serve [...]\(dq,restrict ssh\-rsa [...]
.ft P
.fi
.UNINDENT
diff --git a/docs/man/borg-umount.1 b/docs/man/borg-umount.1
index bd465503..b4d8aac5 100644
--- a/docs/man/borg-umount.1
+++ b/docs/man/borg-umount.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "BORG-UMOUNT" 1 "2022-08-20" "" "borg backup tool"
+.TH "BORG-UMOUNT" 1 "2022-12-24" "" "borg backup tool"
.SH NAME
borg-umount \- un-mount the FUSE filesystem
.SH SYNOPSIS
@@ -69,7 +69,7 @@ bin boot etc home lib lib64 lost+found media mnt opt
root sbin srv tmp usr var
$ borg umount /tmp/mymountpoint
-# The "versions view" merges all archives in the repository
+# The \(dqversions view\(dq merges all archives in the repository
# and provides a versioned view on files.
$ borg mount \-o versions /path/to/repo /tmp/mymountpoint
$ ls \-l /tmp/mymountpoint/home/user/doc.txt/
@@ -79,7 +79,7 @@ total 24
$ borg umount /tmp/mymountpoint
# Archive filters are supported.
-# These are especially handy for the "versions view",
+# These are especially handy for the \(dqversions view\(dq,
# which does not support lazy processing of archives.
$ borg mount \-o versions \-\-glob\-archives \(aq*\-my\-home\(aq \-\-last 10 /path/to/repo /tmp/mymountpoint
diff --git a/docs/man/borg-upgrade.1 b/docs/man/borg-upgrade.1
index d8ce088c..bb11794c 100644
--- a/docs/man/borg-upgrade.1
+++ b/docs/man/borg-upgrade.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "BORG-UPGRADE" 1 "2022-08-20" "" "borg backup tool"
+.TH "BORG-UPGRADE" 1 "2022-12-24" "" "borg backup tool"
.SH NAME
borg-upgrade \- upgrade a repository from a previous version
.SH SYNOPSIS
@@ -131,7 +131,7 @@ See \fIborg\-common(1)\fP for common options of Borg commands.
.B REPOSITORY
path to the repository to be upgraded
.UNINDENT
-.SS optional arguments
+.SS options
.INDENT 0.0
.TP
.B \-n\fP,\fB \-\-dry\-run
@@ -170,11 +170,11 @@ no key file found for repository
.UNINDENT
.SS Upgrading a passphrase encrypted attic repo
.sp
-attic offered a "passphrase" encryption mode, but this was removed in borg 1.0
-and replaced by the "repokey" mode (which stores the passphrase\-protected
+attic offered a \(dqpassphrase\(dq encryption mode, but this was removed in borg 1.0
+and replaced by the \(dqrepokey\(dq mode (which stores the passphrase\-protected
encryption key into the repository config).
.sp
-Thus, to upgrade a "passphrase" attic repo to a "repokey" borg repo, 2 steps
+Thus, to upgrade a \(dqpassphrase\(dq attic repo to a \(dqrepokey\(dq borg repo, 2 steps
are needed, in this order:
.INDENT 0.0
.IP \(bu 2
diff --git a/docs/man/borg-with-lock.1 b/docs/man/borg-with-lock.1
index b33449ef..f1b440b8 100644
--- a/docs/man/borg-with-lock.1
+++ b/docs/man/borg-with-lock.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "BORG-WITH-LOCK" 1 "2022-08-20" "" "borg backup tool"
+.TH "BORG-WITH-LOCK" 1 "2022-12-24" "" "borg backup tool"
.SH NAME
borg-with-lock \- run a user specified command with the repository lock held
.SH SYNOPSIS
@@ -47,7 +47,7 @@ code as borg\(aqs return code.
.INDENT 3.5
If you copy a repository with the lock held, the lock will be present in
the copy. Thus, before using borg on the copy from a different host,
-you need to use "borg break\-lock" on the copied repository, because
+you need to use \(dqborg break\-lock\(dq on the copied repository, because
Borg is cautious and does not automatically remove stale locks made by a different host.
.UNINDENT
.UNINDENT
diff --git a/docs/man/borg.1 b/docs/man/borg.1
index 8b70446c..22517639 100644
--- a/docs/man/borg.1
+++ b/docs/man/borg.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "BORG" 1 "2022-08-20" "" "borg backup tool"
+.TH "BORG" 1 "2022-12-24" "" "borg backup tool"
.SH NAME
borg \- deduplicating and encrypting backup tool
.SH SYNOPSIS
@@ -425,7 +425,7 @@ be checked.
Main usecase for this is to fully automate \fBborg change\-passphrase\fP\&.
.TP
.B BORG_DISPLAY_PASSPHRASE
-When set, use the value to answer the "display the passphrase for verification" question when defining a new passphrase for encrypted repositories.
+When set, use the value to answer the \(dqdisplay the passphrase for verification\(dq question when defining a new passphrase for encrypted repositories.
.TP
.B BORG_HOST_ID
Borg usually computes a host id from the FQDN plus the results of \fBuuid.getnode()\fP (which usually returns
@@ -445,7 +445,7 @@ a custom identity file \fBssh \-i /path/to/private/key\fP\&. See \fBman ssh\fP f
the \fB\-\-rsh CMD\fP commandline option overrides the environment variable.
.TP
.B BORG_REMOTE_PATH
-When set, use the given path as borg executable on the remote (defaults to "borg" if unset).
+When set, use the given path as borg executable on the remote (defaults to \(dqborg\(dq if unset).
Using \fB\-\-remote\-path PATH\fP commandline option overrides the environment variable.
.TP
.B BORG_FILES_CACHE_SUFFIX
@@ -454,7 +454,7 @@ When set to a value at least one character long, instructs borg to use a specifi
cache entries for backup sources other than the current sources.
.TP
.B BORG_FILES_CACHE_TTL
-When set to a numeric value, this determines the maximum "time to live" for the files cache
+When set to a numeric value, this determines the maximum \(dqtime to live\(dq for the files cache
entries (default: 20). The files cache is used to quickly determine whether a file is unchanged.
The FAQ explains this more detailed in: \fIalways_chunking\fP
.TP
@@ -510,20 +510,20 @@ in WSL1 (Windows Subsystem for Linux 1).
.UNINDENT
.UNINDENT
.TP
-.B Some automatic "answerers" (if set, they automatically answer confirmation questions):
+.B Some automatic \(dqanswerers\(dq (if set, they automatically answer confirmation questions):
.INDENT 7.0
.TP
.B BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK=no (or =yes)
-For "Warning: Attempting to access a previously unknown unencrypted repository"
+For \(dqWarning: Attempting to access a previously unknown unencrypted repository\(dq
.TP
.B BORG_RELOCATED_REPO_ACCESS_IS_OK=no (or =yes)
-For "Warning: The repository at location ... was previously located at ..."
+For \(dqWarning: The repository at location ... was previously located at ...\(dq
.TP
.B BORG_CHECK_I_KNOW_WHAT_I_AM_DOING=NO (or =YES)
-For "This is a potentially dangerous function..." (check \-\-repair)
+For \(dqThis is a potentially dangerous function...\(dq (check \-\-repair)
.TP
.B BORG_DELETE_I_KNOW_WHAT_I_AM_DOING=NO (or =YES)
-For "You requested to completely DELETE the repository \fIincluding\fP all archives it contains:"
+For \(dqYou requested to completely DELETE the repository \fIincluding\fP all archives it contains:\(dq
.UNINDENT
.sp
Note: answers are case sensitive. setting an invalid answer value might either give the default
@@ -556,8 +556,8 @@ for a security advisory about the data in this directory: \fIhome_config_borg\fP
.TP
.B BORG_SECURITY_DIR
Defaults to \fB$BORG_CONFIG_DIR/security\fP\&.
-This directory contains information borg uses to track its usage of NONCES ("numbers used
-once" \- usually in encryption context) and other security relevant data.
+This directory contains information borg uses to track its usage of NONCES (\(dqnumbers used
+once\(dq \- usually in encryption context) and other security relevant data.
.TP
.B BORG_KEYS_DIR
Defaults to \fB$BORG_CONFIG_DIR/keys\fP\&.
@@ -594,7 +594,7 @@ will be linked against the system libzstd instead of a bundled implementation. (
Please note:
.INDENT 0.0
.IP \(bu 2
-Be very careful when using the "yes" sayers, the warnings with prompt exist for your / your data\(aqs security/safety.
+Be very careful when using the \(dqyes\(dq sayers, the warnings with prompt exist for your / your data\(aqs security/safety.
.IP \(bu 2
Also be very careful when putting your passphrase into a script, make sure it has appropriate file permissions (e.g.
mode 600, root:root).
@@ -739,7 +739,7 @@ process.
For some OSes, this can be done just by setting the correct value in the
\&.bashrc (or equivalent login config file for other shells), however in
other cases it may be necessary to first enable \fBPermitUserEnvironment yes\fP
-in your \fBsshd_config\fP file, then add \fBenvironment="TMPDIR=/my/big/tmpdir"\fP
+in your \fBsshd_config\fP file, then add \fBenvironment=\(dqTMPDIR=/my/big/tmpdir\(dq\fP
at the start of the public key to be used in the \fBauthorized_hosts\fP file.
.TP
.B Cache files (client only):
@@ -767,7 +767,7 @@ special files:
.IP \(bu 2
character and block device files (restored via mknod)
.IP \(bu 2
-FIFOs ("named pipes")
+FIFOs (\(dqnamed pipes\(dq)
.IP \(bu 2
special file \fIcontents\fP can be backed up in \fB\-\-read\-special\fP mode.
By default the metadata to create them with mknod(2), mkfifo(2) etc. is stored.
@@ -887,7 +887,7 @@ Other Unix\-like operating systems may work as well, but have not been tested at
Note that most of the platform\-dependent features also depend on the file system.
For example, ntfs\-3g on Linux isn\(aqt able to convey NTFS ACLs.
.IP [1] 5
-Only "nodump", "immutable", "compressed" and "append" are supported.
+Only \(dqnodump\(dq, \(dqimmutable\(dq, \(dqcompressed\(dq and \(dqappend\(dq are supported.
Feature request #618 for more flags.
.IP [2] 5
Feature request #1332
diff --git a/docs/man/borgfs.1 b/docs/man/borgfs.1
index 71c68e13..d6476fc2 100644
--- a/docs/man/borgfs.1
+++ b/docs/man/borgfs.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "BORGFS" 1 "2022-08-20" "" "borg backup tool"
+.TH "BORGFS" 1 "2022-12-24" "" "borg backup tool"
.SH NAME
borgfs \- Mount archive or an entire repository as a FUSE filesystem
.SH SYNOPSIS
@@ -76,9 +76,9 @@ allow_damaged_files: by default damaged files (where missing chunks were
replaced with runs of zeros by borg check \fB\-\-repair\fP) are not readable and
return EIO (I/O error). Set this option to read such files.
.IP \(bu 2
-ignore_permissions: for security reasons the "default_permissions" mount
-option is internally enforced by borg. "ignore_permissions" can be given to
-not enforce "default_permissions".
+ignore_permissions: for security reasons the \(dqdefault_permissions\(dq mount
+option is internally enforced by borg. \(dqignore_permissions\(dq can be given to
+not enforce \(dqdefault_permissions\(dq.
.UNINDENT
.sp
The BORG_MOUNT_DATA_CACHE_ENTRIES environment variable is meant for advanced users
@@ -107,7 +107,7 @@ where to mount filesystem
.B PATH
paths to extract; patterns are supported
.UNINDENT
-.SS optional arguments
+.SS options
.INDENT 0.0
.TP
.B \-V\fP,\fB \-\-version
@@ -132,10 +132,10 @@ use numeric user and group identifiers from archive(s)
.INDENT 0.0
.TP
.BI \-P \ PREFIX\fR,\fB \ \-\-prefix \ PREFIX
-only consider archive names starting with this prefix.
+only consider archive names starting with this prefix. (deprecated)
.TP
.BI \-a \ GLOB\fR,\fB \ \-\-glob\-archives \ GLOB
-only consider archive names matching the glob. sh: rules apply, see "borg help patterns". \fB\-\-prefix\fP and \fB\-\-glob\-archives\fP are mutually exclusive.
+only consider archive names matching the glob. sh: rules apply, see \(dqborg help patterns\(dq.
.TP
.BI \-\-sort\-by \ KEYS
Comma\-separated list of sorting keys; valid keys are: timestamp, name, id; default is: timestamp
diff --git a/docs/quickstart.rst b/docs/quickstart.rst
index 5e6343a5..85f75742 100644
--- a/docs/quickstart.rst
+++ b/docs/quickstart.rst
@@ -191,24 +191,24 @@ backed up and that the ``prune`` command is keeping and deleting the correct bac
/etc \
/home \
/root \
- /var \
+ /var
backup_exit=$?
info "Pruning repository"
# Use the `prune` subcommand to maintain 7 daily, 4 weekly and 6 monthly
- # archives of THIS machine. The '{hostname}-' prefix is very important to
+ # archives of THIS machine. The '{hostname}-*' matching is very important to
# limit prune's operation to this machine's archives and not apply to
# other machines' archives also:
borg prune \
--list \
- --prefix '{hostname}-' \
+ --glob-archives '{hostname}-*' \
--show-rc \
--keep-daily 7 \
--keep-weekly 4 \
- --keep-monthly 6 \
+ --keep-monthly 6
prune_exit=$?
diff --git a/docs/usage/check.rst.inc b/docs/usage/check.rst.inc
index 0f4ff7af..eebfc565 100644
--- a/docs/usage/check.rst.inc
+++ b/docs/usage/check.rst.inc
@@ -12,41 +12,41 @@ borg check
.. class:: borg-options-table
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | **positional arguments** |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``REPOSITORY_OR_ARCHIVE`` | repository or archive to check consistency of |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | **optional arguments** |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--repository-only`` | only perform repository checks |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--archives-only`` | only perform archives checks |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--verify-data`` | perform cryptographic archive data integrity verification (conflicts with ``--repository-only``) |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--repair`` | attempt to repair any inconsistencies found |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--save-space`` | work slower, but using less space |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--max-duration SECONDS`` | do only a partial repo check for max. SECONDS seconds (Default: unlimited) |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | .. class:: borg-common-opt-ref |
- | |
- | :ref:`common_options` |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | **Archive filters** — Archive filters can be applied to repository targets. |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``-P PREFIX``, ``--prefix PREFIX`` | only consider archive names starting with this prefix. |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``-a GLOB``, ``--glob-archives GLOB`` | only consider archive names matching the glob. sh: rules apply, see "borg help patterns". ``--prefix`` and ``--glob-archives`` are mutually exclusive. |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--sort-by KEYS`` | Comma-separated list of sorting keys; valid keys are: timestamp, name, id; default is: timestamp |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--first N`` | consider first N archives after other filters were applied |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--last N`` | consider last N archives after other filters were applied |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
+ +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------+
+ | **positional arguments** |
+ +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------+
+ | | ``REPOSITORY_OR_ARCHIVE`` | repository or archive to check consistency of |
+ +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------+
+ | **options** |
+ +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------+
+ | | ``--repository-only`` | only perform repository checks |
+ +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------+
+ | | ``--archives-only`` | only perform archives checks |
+ +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------+
+ | | ``--verify-data`` | perform cryptographic archive data integrity verification (conflicts with ``--repository-only``) |
+ +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------+
+ | | ``--repair`` | attempt to repair any inconsistencies found |
+ +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------+
+ | | ``--save-space`` | work slower, but using less space |
+ +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------+
+ | | ``--max-duration SECONDS`` | do only a partial repo check for max. SECONDS seconds (Default: unlimited) |
+ +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------+
+ | .. class:: borg-common-opt-ref |
+ | |
+ | :ref:`common_options` |
+ +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------+
+ | **Archive filters** — Archive filters can be applied to repository targets. |
+ +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------+
+ | | ``-P PREFIX``, ``--prefix PREFIX`` | only consider archive names starting with this prefix. (deprecated) |
+ +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------+
+ | | ``-a GLOB``, ``--glob-archives GLOB`` | only consider archive names matching the glob. sh: rules apply, see "borg help patterns". |
+ +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------+
+ | | ``--sort-by KEYS`` | Comma-separated list of sorting keys; valid keys are: timestamp, name, id; default is: timestamp |
+ +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------+
+ | | ``--first N`` | consider first N archives after other filters were applied |
+ +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------+
+ | | ``--last N`` | consider last N archives after other filters were applied |
+ +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------+
.. raw:: html
@@ -62,7 +62,7 @@ borg check
repository or archive to check consistency of
- optional arguments
+ options
--repository-only only perform repository checks
--archives-only only perform archives checks
--verify-data perform cryptographic archive data integrity verification (conflicts with ``--repository-only``)
@@ -75,8 +75,8 @@ borg check
|
Archive filters
- -P PREFIX, --prefix PREFIX only consider archive names starting with this prefix.
- -a GLOB, --glob-archives GLOB only consider archive names matching the glob. sh: rules apply, see "borg help patterns". ``--prefix`` and ``--glob-archives`` are mutually exclusive.
+ -P PREFIX, --prefix PREFIX only consider archive names starting with this prefix. (deprecated)
+ -a GLOB, --glob-archives GLOB only consider archive names matching the glob. sh: rules apply, see "borg help patterns".
--sort-by KEYS Comma-separated list of sorting keys; valid keys are: timestamp, name, id; default is: timestamp
--first N consider first N archives after other filters were applied
--last N consider last N archives after other filters were applied
diff --git a/docs/usage/compact.rst.inc b/docs/usage/compact.rst.inc
index 8187bbf7..514dbf57 100644
--- a/docs/usage/compact.rst.inc
+++ b/docs/usage/compact.rst.inc
@@ -17,7 +17,7 @@ borg compact
+-------------------------------------------------------+-------------------------+----------------------------------------------------------------+
| | ``REPOSITORY`` | repository to compact |
+-------------------------------------------------------+-------------------------+----------------------------------------------------------------+
- | **optional arguments** |
+ | **options** |
+-------------------------------------------------------+-------------------------+----------------------------------------------------------------+
| | ``--cleanup-commits`` | cleanup commit-only 17-byte segment files |
+-------------------------------------------------------+-------------------------+----------------------------------------------------------------+
@@ -42,7 +42,7 @@ borg compact
repository to compact
- optional arguments
+ options
--cleanup-commits cleanup commit-only 17-byte segment files
--threshold PERCENT set minimum threshold for saved space in PERCENT (Default: 10)
diff --git a/docs/usage/config.rst.inc b/docs/usage/config.rst.inc
index d90c327e..fdb44bf8 100644
--- a/docs/usage/config.rst.inc
+++ b/docs/usage/config.rst.inc
@@ -21,7 +21,7 @@ borg config
+-------------------------------------------------------+----------------------+----------------------------------------+
| | ``VALUE`` | new value for key |
+-------------------------------------------------------+----------------------+----------------------------------------+
- | **optional arguments** |
+ | **options** |
+-------------------------------------------------------+----------------------+----------------------------------------+
| | ``-c``, ``--cache`` | get and set values from the repo cache |
+-------------------------------------------------------+----------------------+----------------------------------------+
@@ -52,7 +52,7 @@ borg config
new value for key
- optional arguments
+ options
-c, --cache get and set values from the repo cache
-d, --delete delete the key from the config file
-l, --list list the configuration of the repo
diff --git a/docs/usage/create.rst.inc b/docs/usage/create.rst.inc
index b61fb979..68fa2918 100644
--- a/docs/usage/create.rst.inc
+++ b/docs/usage/create.rst.inc
@@ -19,7 +19,7 @@ borg create
+-------------------------------------------------------+---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
| | ``PATH`` | paths to archive |
+-------------------------------------------------------+---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
- | **optional arguments** |
+ | **options** |
+-------------------------------------------------------+---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
| | ``-n``, ``--dry-run`` | do not create a backup archive |
+-------------------------------------------------------+---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -37,7 +37,7 @@ borg create
+-------------------------------------------------------+---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
| | ``--stdin-user USER`` | set user USER in archive for stdin data (default: 'root') |
+-------------------------------------------------------+---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--stdin-group GROUP`` | set group GROUP in archive for stdin data (default: 'root') |
+ | | ``--stdin-group GROUP`` | set group GROUP in archive for stdin data (default: 'wheel') |
+-------------------------------------------------------+---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
| | ``--stdin-mode M`` | set mode to M in archive for stdin data (default: 0660) |
+-------------------------------------------------------+---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -130,7 +130,7 @@ borg create
paths to archive
- optional arguments
+ options
-n, --dry-run do not create a backup archive
-s, --stats print statistics for the created archive
--list output verbose list of items (files, dirs, ...)
@@ -139,7 +139,7 @@ borg create
--no-cache-sync experimental: do not synchronize the cache. Implies not using the files cache.
--stdin-name NAME use NAME in archive for stdin data (default: 'stdin')
--stdin-user USER set user USER in archive for stdin data (default: 'root')
- --stdin-group GROUP set group GROUP in archive for stdin data (default: 'root')
+ --stdin-group GROUP set group GROUP in archive for stdin data (default: 'wheel')
--stdin-mode M set mode to M in archive for stdin data (default: 0660)
--content-from-command interpret PATH as command and store its stdout. See also section Reading from stdin below.
--paths-from-stdin read DELIM-separated list of paths to backup from stdin. Will not recurse into directories.
diff --git a/docs/usage/delete.rst b/docs/usage/delete.rst
index 7bd50b5d..72270cca 100644
--- a/docs/usage/delete.rst
+++ b/docs/usage/delete.rst
@@ -10,7 +10,7 @@ Examples
$ borg compact /path/to/repo
# delete all archives whose names begin with the machine's hostname followed by "-"
- $ borg delete --prefix '{hostname}-' /path/to/repo
+ $ borg delete --glob-archives '{hostname}-*' /path/to/repo
# delete all archives whose names contain "-2012-"
$ borg delete --glob-archives '*-2012-*' /path/to/repo
diff --git a/docs/usage/delete.rst.inc b/docs/usage/delete.rst.inc
index 84b01f04..20bc8a84 100644
--- a/docs/usage/delete.rst.inc
+++ b/docs/usage/delete.rst.inc
@@ -12,47 +12,47 @@ borg delete
.. class:: borg-options-table
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | **positional arguments** |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``REPOSITORY_OR_ARCHIVE`` | repository or archive to delete |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``ARCHIVE`` | archives to delete |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | **optional arguments** |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``-n``, ``--dry-run`` | do not change repository |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--list`` | output verbose list of archives |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``-s``, ``--stats`` | print statistics for the deleted archive |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--cache-only`` | delete only the local cache for the given repository |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--force`` | force deletion of corrupted archives, use ``--force --force`` in case ``--force`` does not work. |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--keep-security-info`` | keep the local security info when deleting a repository |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--save-space`` | work slower, but using less space |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``-c SECONDS``, ``--checkpoint-interval SECONDS`` | write checkpoint every SECONDS seconds (Default: 1800) |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | .. class:: borg-common-opt-ref |
- | |
- | :ref:`common_options` |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | **Archive filters** — Archive filters can be applied to repository targets. |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``-P PREFIX``, ``--prefix PREFIX`` | only consider archive names starting with this prefix. |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``-a GLOB``, ``--glob-archives GLOB`` | only consider archive names matching the glob. sh: rules apply, see "borg help patterns". ``--prefix`` and ``--glob-archives`` are mutually exclusive. |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--sort-by KEYS`` | Comma-separated list of sorting keys; valid keys are: timestamp, name, id; default is: timestamp |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--first N`` | consider first N archives after other filters were applied |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--last N`` | consider last N archives after other filters were applied |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
+ +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------+
+ | **positional arguments** |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------+
+ | | ``REPOSITORY_OR_ARCHIVE`` | repository or archive to delete |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------+
+ | | ``ARCHIVE`` | archives to delete |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------+
+ | **options** |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------+
+ | | ``-n``, ``--dry-run`` | do not change repository |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------+
+ | | ``--list`` | output verbose list of archives |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------+
+ | | ``-s``, ``--stats`` | print statistics for the deleted archive |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------+
+ | | ``--cache-only`` | delete only the local cache for the given repository |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------+
+ | | ``--force`` | force deletion of corrupted archives, use ``--force --force`` in case ``--force`` does not work. |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------+
+ | | ``--keep-security-info`` | keep the local security info when deleting a repository |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------+
+ | | ``--save-space`` | work slower, but using less space |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------+
+ | | ``-c SECONDS``, ``--checkpoint-interval SECONDS`` | write checkpoint every SECONDS seconds (Default: 1800) |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------+
+ | .. class:: borg-common-opt-ref |
+ | |
+ | :ref:`common_options` |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------+
+ | **Archive filters** — Archive filters can be applied to repository targets. |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------+
+ | | ``-P PREFIX``, ``--prefix PREFIX`` | only consider archive names starting with this prefix. (deprecated) |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------+
+ | | ``-a GLOB``, ``--glob-archives GLOB`` | only consider archive names matching the glob. sh: rules apply, see "borg help patterns". |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------+
+ | | ``--sort-by KEYS`` | Comma-separated list of sorting keys; valid keys are: timestamp, name, id; default is: timestamp |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------+
+ | | ``--first N`` | consider first N archives after other filters were applied |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------+
+ | | ``--last N`` | consider last N archives after other filters were applied |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------+
.. raw:: html
@@ -70,7 +70,7 @@ borg delete
archives to delete
- optional arguments
+ options
-n, --dry-run do not change repository
--list output verbose list of archives
-s, --stats print statistics for the deleted archive
@@ -85,8 +85,8 @@ borg delete
|
Archive filters
- -P PREFIX, --prefix PREFIX only consider archive names starting with this prefix.
- -a GLOB, --glob-archives GLOB only consider archive names matching the glob. sh: rules apply, see "borg help patterns". ``--prefix`` and ``--glob-archives`` are mutually exclusive.
+ -P PREFIX, --prefix PREFIX only consider archive names starting with this prefix. (deprecated)
+ -a GLOB, --glob-archives GLOB only consider archive names matching the glob. sh: rules apply, see "borg help patterns".
--sort-by KEYS Comma-separated list of sorting keys; valid keys are: timestamp, name, id; default is: timestamp
--first N consider first N archives after other filters were applied
--last N consider last N archives after other filters were applied
@@ -112,11 +112,9 @@ deleted - the "Deleted data" deduplicated size there is most interesting as
that is how much your repository will shrink.
Please note that the "All archives" stats refer to the state after deletion.
-You can delete multiple archives by specifying their common prefix, if they
-have one, using the ``--prefix PREFIX`` option. You can also specify a shell
-pattern to match multiple archives using the ``--glob-archives GLOB`` option
-(for more info on these patterns, see :ref:`borg_patterns`). Note that these
-two options are mutually exclusive.
+You can delete multiple archives by specifying a shell pattern to match
+multiple archives using the ``--glob-archives GLOB`` option (for more info on
+these patterns, see :ref:`borg_patterns`).
To avoid accidentally deleting archives, especially when using glob patterns,
it might be helpful to use the ``--dry-run`` to test out the command without
diff --git a/docs/usage/diff.rst.inc b/docs/usage/diff.rst.inc
index 267aad60..df5dcc5e 100644
--- a/docs/usage/diff.rst.inc
+++ b/docs/usage/diff.rst.inc
@@ -21,7 +21,7 @@ borg diff
+-------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------+
| | ``PATH`` | paths of items inside the archives to compare; patterns are supported |
+-------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------+
- | **optional arguments** |
+ | **options** |
+-------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------+
| | ``--numeric-owner`` | deprecated, use ``--numeric-ids`` instead |
+-------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------+
@@ -66,7 +66,7 @@ borg diff
paths of items inside the archives to compare; patterns are supported
- optional arguments
+ options
--numeric-owner deprecated, use ``--numeric-ids`` instead
--numeric-ids only consider numeric user and group identifiers
--same-chunker-params Override check of chunker parameters.
diff --git a/docs/usage/export-tar.rst.inc b/docs/usage/export-tar.rst.inc
index c02a04ee..a8f43184 100644
--- a/docs/usage/export-tar.rst.inc
+++ b/docs/usage/export-tar.rst.inc
@@ -21,7 +21,7 @@ borg export-tar
+-------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
| | ``PATH`` | paths to extract; patterns are supported |
+-------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
- | **optional arguments** |
+ | **options** |
+-------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
| | ``--tar-filter`` | filter program to pipe data through |
+-------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
@@ -62,7 +62,7 @@ borg export-tar
paths to extract; patterns are supported
- optional arguments
+ options
--tar-filter filter program to pipe data through
--list output verbose list of items (files, dirs, ...)
@@ -92,7 +92,7 @@ before writing it to FILE:
- .tar.gz or .tgz: gzip
- .tar.bz2 or .tbz: bzip2
- .tar.xz or .txz: xz
-- .tar.zstd: zstd
+- .tar.zstd or .tar.zst: zstd
- .tar.lz4: lz4
Alternatively, a ``--tar-filter`` program may be explicitly specified. It should
diff --git a/docs/usage/extract.rst.inc b/docs/usage/extract.rst.inc
index c157c768..22a39f20 100644
--- a/docs/usage/extract.rst.inc
+++ b/docs/usage/extract.rst.inc
@@ -19,7 +19,7 @@ borg extract
+-------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
| | ``PATH`` | paths to extract; patterns are supported |
+-------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
- | **optional arguments** |
+ | **options** |
+-------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
| | ``--list`` | output verbose list of items (files, dirs, ...) |
+-------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
@@ -74,7 +74,7 @@ borg extract
paths to extract; patterns are supported
- optional arguments
+ options
--list output verbose list of items (files, dirs, ...)
-n, --dry-run do not actually change any files
--numeric-owner deprecated, use ``--numeric-ids`` instead
diff --git a/docs/usage/help.rst.inc b/docs/usage/help.rst.inc
index 31c29b6a..18e36f20 100644
--- a/docs/usage/help.rst.inc
+++ b/docs/usage/help.rst.inc
@@ -279,7 +279,7 @@ Examples::
borg create /path/to/repo::{hostname}-{user}-{utcnow} ...
borg create /path/to/repo::{hostname}-{now:%Y-%m-%d_%H:%M:%S} ...
- borg prune --prefix '{hostname}-' ...
+ borg prune --glob-archives '{hostname}-*' ...
.. note::
systemd uses a difficult, non-standard syntax for command lines in unit files (refer to
diff --git a/docs/usage/import-tar.rst.inc b/docs/usage/import-tar.rst.inc
index b0b5822a..74c94356 100644
--- a/docs/usage/import-tar.rst.inc
+++ b/docs/usage/import-tar.rst.inc
@@ -19,7 +19,7 @@ borg import-tar
+-------------------------------------------------------+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+
| | ``TARFILE`` | input tar file. "-" to read from stdin instead. |
+-------------------------------------------------------+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+
- | **optional arguments** |
+ | **options** |
+-------------------------------------------------------+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+
| | ``--tar-filter`` | filter program to pipe data through |
+-------------------------------------------------------+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+
@@ -64,7 +64,7 @@ borg import-tar
input tar file. "-" to read from stdin instead.
- optional arguments
+ options
--tar-filter filter program to pipe data through
-s, --stats print statistics for the created archive
--list output verbose list of items (files, dirs, ...)
@@ -96,7 +96,7 @@ based on its file extension and pipe the file through an appropriate filter:
- .tar.gz or .tgz: gzip -d
- .tar.bz2 or .tbz: bzip2 -d
- .tar.xz or .txz: xz -d
-- .tar.zstd: zstd -d
+- .tar.zstd or .tar.zst: zstd -d
- .tar.lz4: lz4 -d
Alternatively, a --tar-filter program may be explicitly specified. It should
diff --git a/docs/usage/info.rst.inc b/docs/usage/info.rst.inc
index 0d6bfe91..104cd1fe 100644
--- a/docs/usage/info.rst.inc
+++ b/docs/usage/info.rst.inc
@@ -12,31 +12,31 @@ borg info
.. class:: borg-options-table
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | **positional arguments** |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``REPOSITORY_OR_ARCHIVE`` | repository or archive to display information about |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | **optional arguments** |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--json`` | format output as JSON |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | .. class:: borg-common-opt-ref |
- | |
- | :ref:`common_options` |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | **Archive filters** — Archive filters can be applied to repository targets. |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``-P PREFIX``, ``--prefix PREFIX`` | only consider archive names starting with this prefix. |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``-a GLOB``, ``--glob-archives GLOB`` | only consider archive names matching the glob. sh: rules apply, see "borg help patterns". ``--prefix`` and ``--glob-archives`` are mutually exclusive. |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--sort-by KEYS`` | Comma-separated list of sorting keys; valid keys are: timestamp, name, id; default is: timestamp |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--first N`` | consider first N archives after other filters were applied |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--last N`` | consider last N archives after other filters were applied |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
+ +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------+
+ | **positional arguments** |
+ +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------+
+ | | ``REPOSITORY_OR_ARCHIVE`` | repository or archive to display information about |
+ +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------+
+ | **options** |
+ +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------+
+ | | ``--json`` | format output as JSON |
+ +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------+
+ | .. class:: borg-common-opt-ref |
+ | |
+ | :ref:`common_options` |
+ +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------+
+ | **Archive filters** — Archive filters can be applied to repository targets. |
+ +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------+
+ | | ``-P PREFIX``, ``--prefix PREFIX`` | only consider archive names starting with this prefix. (deprecated) |
+ +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------+
+ | | ``-a GLOB``, ``--glob-archives GLOB`` | only consider archive names matching the glob. sh: rules apply, see "borg help patterns". |
+ +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------+
+ | | ``--sort-by KEYS`` | Comma-separated list of sorting keys; valid keys are: timestamp, name, id; default is: timestamp |
+ +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------+
+ | | ``--first N`` | consider first N archives after other filters were applied |
+ +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------+
+ | | ``--last N`` | consider last N archives after other filters were applied |
+ +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------+
.. raw:: html
@@ -52,7 +52,7 @@ borg info
repository or archive to display information about
- optional arguments
+ options
--json format output as JSON
@@ -60,8 +60,8 @@ borg info
|
Archive filters
- -P PREFIX, --prefix PREFIX only consider archive names starting with this prefix.
- -a GLOB, --glob-archives GLOB only consider archive names matching the glob. sh: rules apply, see "borg help patterns". ``--prefix`` and ``--glob-archives`` are mutually exclusive.
+ -P PREFIX, --prefix PREFIX only consider archive names starting with this prefix. (deprecated)
+ -a GLOB, --glob-archives GLOB only consider archive names matching the glob. sh: rules apply, see "borg help patterns".
--sort-by KEYS Comma-separated list of sorting keys; valid keys are: timestamp, name, id; default is: timestamp
--first N consider first N archives after other filters were applied
--last N consider last N archives after other filters were applied
diff --git a/docs/usage/init.rst.inc b/docs/usage/init.rst.inc
index d3d3f301..8dde989d 100644
--- a/docs/usage/init.rst.inc
+++ b/docs/usage/init.rst.inc
@@ -17,7 +17,7 @@ borg init
+-------------------------------------------------------+------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| | ``REPOSITORY`` | repository to create |
+-------------------------------------------------------+------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | **optional arguments** |
+ | **options** |
+-------------------------------------------------------+------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| | ``-e MODE``, ``--encryption MODE`` | select encryption key mode **(required)** |
+-------------------------------------------------------+------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -46,7 +46,7 @@ borg init
repository to create
- optional arguments
+ options
-e MODE, --encryption MODE select encryption key mode **(required)**
--append-only create an append-only mode repository. Note that this only affects the low level structure of the repository, and running `delete` or `prune` will still be allowed. See :ref:`append_only_mode` in Additional Notes for more details.
--storage-quota QUOTA Set storage quota of the new repository (e.g. 5G, 1.5T). Default: no quota.
diff --git a/docs/usage/key_export.rst.inc b/docs/usage/key_export.rst.inc
index 0a57bf09..319d8b8d 100644
--- a/docs/usage/key_export.rst.inc
+++ b/docs/usage/key_export.rst.inc
@@ -19,7 +19,7 @@ borg key export
+-------------------------------------------------------+----------------+------------------------------------------------------------------------+
| | ``PATH`` | where to store the backup |
+-------------------------------------------------------+----------------+------------------------------------------------------------------------+
- | **optional arguments** |
+ | **options** |
+-------------------------------------------------------+----------------+------------------------------------------------------------------------+
| | ``--paper`` | Create an export suitable for printing and later type-in |
+-------------------------------------------------------+----------------+------------------------------------------------------------------------+
@@ -46,7 +46,7 @@ borg key export
where to store the backup
- optional arguments
+ options
--paper Create an export suitable for printing and later type-in
--qr-html Create an html file suitable for printing and later type-in or qr scan
diff --git a/docs/usage/key_import.rst.inc b/docs/usage/key_import.rst.inc
index a0890ff3..19afbe53 100644
--- a/docs/usage/key_import.rst.inc
+++ b/docs/usage/key_import.rst.inc
@@ -19,7 +19,7 @@ borg key import
+-------------------------------------------------------+----------------+----------------------------------------------------------+
| | ``PATH`` | path to the backup ('-' to read from stdin) |
+-------------------------------------------------------+----------------+----------------------------------------------------------+
- | **optional arguments** |
+ | **options** |
+-------------------------------------------------------+----------------+----------------------------------------------------------+
| | ``--paper`` | interactively import from a backup done with ``--paper`` |
+-------------------------------------------------------+----------------+----------------------------------------------------------+
@@ -44,7 +44,7 @@ borg key import
path to the backup ('-' to read from stdin)
- optional arguments
+ options
--paper interactively import from a backup done with ``--paper``
diff --git a/docs/usage/list.rst.inc b/docs/usage/list.rst.inc
index 2c1bdc14..ed0957c2 100644
--- a/docs/usage/list.rst.inc
+++ b/docs/usage/list.rst.inc
@@ -19,7 +19,7 @@ borg list
+-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| | ``PATH`` | paths to list; patterns are supported |
+-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | **optional arguments** |
+ | **options** |
+-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| | ``--consider-checkpoints`` | Show checkpoint archives in the repository contents list (default: hidden). |
+-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -37,9 +37,9 @@ borg list
+-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| **Archive filters** — Archive filters can be applied to repository targets. |
+-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``-P PREFIX``, ``--prefix PREFIX`` | only consider archive names starting with this prefix. |
+ | | ``-P PREFIX``, ``--prefix PREFIX`` | only consider archive names starting with this prefix. (deprecated) |
+-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``-a GLOB``, ``--glob-archives GLOB`` | only consider archive names matching the glob. sh: rules apply, see "borg help patterns". ``--prefix`` and ``--glob-archives`` are mutually exclusive. |
+ | | ``-a GLOB``, ``--glob-archives GLOB`` | only consider archive names matching the glob. sh: rules apply, see "borg help patterns". |
+-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| | ``--sort-by KEYS`` | Comma-separated list of sorting keys; valid keys are: timestamp, name, id; default is: timestamp |
+-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -74,7 +74,7 @@ borg list
paths to list; patterns are supported
- optional arguments
+ options
--consider-checkpoints Show checkpoint archives in the repository contents list (default: hidden).
--short only print file/directory names, nothing else
--format FORMAT specify format for file or archive listing (default for files: "{mode} {user:6} {group:6} {size:8} {mtime} {path}{extra}{NL}"; for archives: "{archive:<36} {time} [{id}]{NL}")
@@ -86,8 +86,8 @@ borg list
|
Archive filters
- -P PREFIX, --prefix PREFIX only consider archive names starting with this prefix.
- -a GLOB, --glob-archives GLOB only consider archive names matching the glob. sh: rules apply, see "borg help patterns". ``--prefix`` and ``--glob-archives`` are mutually exclusive.
+ -P PREFIX, --prefix PREFIX only consider archive names starting with this prefix. (deprecated)
+ -a GLOB, --glob-archives GLOB only consider archive names matching the glob. sh: rules apply, see "borg help patterns".
--sort-by KEYS Comma-separated list of sorting keys; valid keys are: timestamp, name, id; default is: timestamp
--first N consider first N archives after other filters were applied
--last N consider last N archives after other filters were applied
diff --git a/docs/usage/mount.rst.inc b/docs/usage/mount.rst.inc
index a720f88a..dfb937c9 100644
--- a/docs/usage/mount.rst.inc
+++ b/docs/usage/mount.rst.inc
@@ -12,55 +12,55 @@ borg mount
.. class:: borg-options-table
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | **positional arguments** |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``REPOSITORY_OR_ARCHIVE`` | repository or archive to mount |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``MOUNTPOINT`` | where to mount filesystem |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``PATH`` | paths to extract; patterns are supported |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | **optional arguments** |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--consider-checkpoints`` | Show checkpoint archives in the repository contents list (default: hidden). |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``-f``, ``--foreground`` | stay in foreground, do not daemonize |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``-o`` | Extra mount options |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--numeric-owner`` | deprecated, use ``--numeric-ids`` instead |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--numeric-ids`` | use numeric user and group identifiers from archive(s) |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | .. class:: borg-common-opt-ref |
- | |
- | :ref:`common_options` |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | **Archive filters** — Archive filters can be applied to repository targets. |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``-P PREFIX``, ``--prefix PREFIX`` | only consider archive names starting with this prefix. |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``-a GLOB``, ``--glob-archives GLOB`` | only consider archive names matching the glob. sh: rules apply, see "borg help patterns". ``--prefix`` and ``--glob-archives`` are mutually exclusive. |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--sort-by KEYS`` | Comma-separated list of sorting keys; valid keys are: timestamp, name, id; default is: timestamp |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--first N`` | consider first N archives after other filters were applied |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--last N`` | consider last N archives after other filters were applied |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | **Exclusion options** |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``-e PATTERN``, ``--exclude PATTERN`` | exclude paths matching PATTERN |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--exclude-from EXCLUDEFILE`` | read exclude patterns from EXCLUDEFILE, one per line |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--pattern PATTERN`` | include/exclude paths matching PATTERN |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--patterns-from PATTERNFILE`` | read include/exclude patterns from PATTERNFILE, one per line |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--strip-components NUMBER`` | Remove the specified number of leading path elements. Paths with fewer elements will be silently skipped. |
- +-----------------------------------------------------------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
+ +-----------------------------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
+ | **positional arguments** |
+ +-----------------------------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
+ | | ``REPOSITORY_OR_ARCHIVE`` | repository or archive to mount |
+ +-----------------------------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
+ | | ``MOUNTPOINT`` | where to mount filesystem |
+ +-----------------------------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
+ | | ``PATH`` | paths to extract; patterns are supported |
+ +-----------------------------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
+ | **options** |
+ +-----------------------------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
+ | | ``--consider-checkpoints`` | Show checkpoint archives in the repository contents list (default: hidden). |
+ +-----------------------------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
+ | | ``-f``, ``--foreground`` | stay in foreground, do not daemonize |
+ +-----------------------------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
+ | | ``-o`` | Extra mount options |
+ +-----------------------------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
+ | | ``--numeric-owner`` | deprecated, use ``--numeric-ids`` instead |
+ +-----------------------------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
+ | | ``--numeric-ids`` | use numeric user and group identifiers from archive(s) |
+ +-----------------------------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
+ | .. class:: borg-common-opt-ref |
+ | |
+ | :ref:`common_options` |
+ +-----------------------------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
+ | **Archive filters** — Archive filters can be applied to repository targets. |
+ +-----------------------------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
+ | | ``-P PREFIX``, ``--prefix PREFIX`` | only consider archive names starting with this prefix. (deprecated) |
+ +-----------------------------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
+ | | ``-a GLOB``, ``--glob-archives GLOB`` | only consider archive names matching the glob. sh: rules apply, see "borg help patterns". |
+ +-----------------------------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
+ | | ``--sort-by KEYS`` | Comma-separated list of sorting keys; valid keys are: timestamp, name, id; default is: timestamp |
+ +-----------------------------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
+ | | ``--first N`` | consider first N archives after other filters were applied |
+ +-----------------------------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
+ | | ``--last N`` | consider last N archives after other filters were applied |
+ +-----------------------------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
+ | **Exclusion options** |
+ +-----------------------------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
+ | | ``-e PATTERN``, ``--exclude PATTERN`` | exclude paths matching PATTERN |
+ +-----------------------------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
+ | | ``--exclude-from EXCLUDEFILE`` | read exclude patterns from EXCLUDEFILE, one per line |
+ +-----------------------------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
+ | | ``--pattern PATTERN`` | include/exclude paths matching PATTERN |
+ +-----------------------------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
+ | | ``--patterns-from PATTERNFILE`` | read include/exclude patterns from PATTERNFILE, one per line |
+ +-----------------------------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
+ | | ``--strip-components NUMBER`` | Remove the specified number of leading path elements. Paths with fewer elements will be silently skipped. |
+ +-----------------------------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------------------------------------------+
.. raw:: html
@@ -80,7 +80,7 @@ borg mount
paths to extract; patterns are supported
- optional arguments
+ options
--consider-checkpoints Show checkpoint archives in the repository contents list (default: hidden).
-f, --foreground stay in foreground, do not daemonize
-o Extra mount options
@@ -92,8 +92,8 @@ borg mount
|
Archive filters
- -P PREFIX, --prefix PREFIX only consider archive names starting with this prefix.
- -a GLOB, --glob-archives GLOB only consider archive names matching the glob. sh: rules apply, see "borg help patterns". ``--prefix`` and ``--glob-archives`` are mutually exclusive.
+ -P PREFIX, --prefix PREFIX only consider archive names starting with this prefix. (deprecated)
+ -a GLOB, --glob-archives GLOB only consider archive names matching the glob. sh: rules apply, see "borg help patterns".
--sort-by KEYS Comma-separated list of sorting keys; valid keys are: timestamp, name, id; default is: timestamp
--first N consider first N archives after other filters were applied
--last N consider last N archives after other filters were applied
diff --git a/docs/usage/prune.rst b/docs/usage/prune.rst
index 6b0ac84b..62642616 100644
--- a/docs/usage/prune.rst
+++ b/docs/usage/prune.rst
@@ -7,9 +7,9 @@ Be careful, prune is a potentially dangerous command, it will remove backup
archives.
The default of prune is to apply to **all archives in the repository** unless
-you restrict its operation to a subset of the archives using ``--prefix``.
-When using ``--prefix``, be careful to choose a good prefix - e.g. do not use a
-prefix "foo" if you do not also want to match "foobar".
+you restrict its operation to a subset of the archives using ``--glob-archives``.
+When using ``--glob-archives``, be careful to choose a good matching pattern -
+e.g. do not use "foo*" if you do not also want to match "foobar".
It is strongly recommended to always run ``prune -v --list --dry-run ...``
first so you will see what it would do without it actually doing anything.
@@ -22,7 +22,7 @@ first so you will see what it would do without it actually doing anything.
# Same as above but only apply to archive names starting with the hostname
# of the machine followed by a "-" character:
- $ borg prune -v --list --keep-daily=7 --keep-weekly=4 --prefix='{hostname}-' /path/to/repo
+ $ borg prune -v --list --keep-daily=7 --keep-weekly=4 --glob-archives='{hostname}-*' /path/to/repo
# actually free disk space:
$ borg compact /path/to/repo
diff --git a/docs/usage/prune.rst.inc b/docs/usage/prune.rst.inc
index 381686e3..48cd3c4c 100644
--- a/docs/usage/prune.rst.inc
+++ b/docs/usage/prune.rst.inc
@@ -12,51 +12,51 @@ borg prune
.. class:: borg-options-table
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | **positional arguments** |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``REPOSITORY`` | repository to prune |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | **optional arguments** |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``-n``, ``--dry-run`` | do not change repository |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--force`` | force pruning of corrupted archives, use ``--force --force`` in case ``--force`` does not work. |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``-s``, ``--stats`` | print statistics for the deleted archive |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--list`` | output verbose list of archives it keeps/prunes |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--keep-within INTERVAL`` | keep all archives within this time interval |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--keep-last``, ``--keep-secondly`` | number of secondly archives to keep |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--keep-minutely`` | number of minutely archives to keep |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``-H``, ``--keep-hourly`` | number of hourly archives to keep |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``-d``, ``--keep-daily`` | number of daily archives to keep |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``-w``, ``--keep-weekly`` | number of weekly archives to keep |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``-m``, ``--keep-monthly`` | number of monthly archives to keep |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``-y``, ``--keep-yearly`` | number of yearly archives to keep |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``--save-space`` | work slower, but using less space |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``-c SECONDS``, ``--checkpoint-interval SECONDS`` | write checkpoint every SECONDS seconds (Default: 1800) |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | .. class:: borg-common-opt-ref |
- | |
- | :ref:`common_options` |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | **Archive filters** — Archive filters can be applied to repository targets. |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``-P PREFIX``, ``--prefix PREFIX`` | only consider archive names starting with this prefix. |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
- | | ``-a GLOB``, ``--glob-archives GLOB`` | only consider archive names matching the glob. sh: rules apply, see "borg help patterns". ``--prefix`` and ``--glob-archives`` are mutually exclusive. |
- +-----------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
+ +-----------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------------------------------------------------------------------+
+ | **positional arguments** |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------------------------------------------------------------------+
+ | | ``REPOSITORY`` | repository to prune |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------------------------------------------------------------------+
+ | **options** |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------------------------------------------------------------------+
+ | | ``-n``, ``--dry-run`` | do not change repository |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------------------------------------------------------------------+
+ | | ``--force`` | force pruning of corrupted archives, use ``--force --force`` in case ``--force`` does not work. |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------------------------------------------------------------------+
+ | | ``-s``, ``--stats`` | print statistics for the deleted archive |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------------------------------------------------------------------+
+ | | ``--list`` | output verbose list of archives it keeps/prunes |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------------------------------------------------------------------+
+ | | ``--keep-within INTERVAL`` | keep all archives within this time interval |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------------------------------------------------------------------+
+ | | ``--keep-last``, ``--keep-secondly`` | number of secondly archives to keep |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------------------------------------------------------------------+
+ | | ``--keep-minutely`` | number of minutely archives to keep |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------------------------------------------------------------------+
+ | | ``-H``, ``--keep-hourly`` | number of hourly archives to keep |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------------------------------------------------------------------+
+ | | ``-d``, ``--keep-daily`` | number of daily archives to keep |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------------------------------------------------------------------+
+ | | ``-w``, ``--keep-weekly`` | number of weekly archives to keep |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------------------------------------------------------------------+
+ | | ``-m``, ``--keep-monthly`` | number of monthly archives to keep |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------------------------------------------------------------------+
+ | | ``-y``, ``--keep-yearly`` | number of yearly archives to keep |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------------------------------------------------------------------+
+ | | ``--save-space`` | work slower, but using less space |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------------------------------------------------------------------+
+ | | ``-c SECONDS``, ``--checkpoint-interval SECONDS`` | write checkpoint every SECONDS seconds (Default: 1800) |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------------------------------------------------------------------+
+ | .. class:: borg-common-opt-ref |
+ | |
+ | :ref:`common_options` |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------------------------------------------------------------------+
+ | **Archive filters** — Archive filters can be applied to repository targets. |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------------------------------------------------------------------+
+ | | ``-P PREFIX``, ``--prefix PREFIX`` | only consider archive names starting with this prefix. (deprecated) |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------------------------------------------------------------------+
+ | | ``-a GLOB``, ``--glob-archives GLOB`` | only consider archive names matching the glob. sh: rules apply, see "borg help patterns". |
+ +-----------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------------------------------------------------------------------+
.. raw:: html
@@ -72,7 +72,7 @@ borg prune
repository to prune
- optional arguments
+ options
-n, --dry-run do not change repository
--force force pruning of corrupted archives, use ``--force --force`` in case ``--force`` does not work.
-s, --stats print statistics for the deleted archive
@@ -93,8 +93,8 @@ borg prune
|
Archive filters
- -P PREFIX, --prefix PREFIX only consider archive names starting with this prefix.
- -a GLOB, --glob-archives GLOB only consider archive names matching the glob. sh: rules apply, see "borg help patterns". ``--prefix`` and ``--glob-archives`` are mutually exclusive.
+ -P PREFIX, --prefix PREFIX only consider archive names starting with this prefix. (deprecated)
+ -a GLOB, --glob-archives GLOB only consider archive names matching the glob. sh: rules apply, see "borg help patterns".
Description
diff --git a/docs/usage/recreate.rst.inc b/docs/usage/recreate.rst.inc
index f64e0759..31e55cfd 100644
--- a/docs/usage/recreate.rst.inc
+++ b/docs/usage/recreate.rst.inc
@@ -19,7 +19,7 @@ borg recreate
+-------------------------------------------------------+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| | ``PATH`` | paths to recreate; patterns are supported |
+-------------------------------------------------------+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | **optional arguments** |
+ | **options** |
+-------------------------------------------------------+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| | ``--list`` | output verbose list of items (files, dirs, ...) |
+-------------------------------------------------------+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -82,7 +82,7 @@ borg recreate
paths to recreate; patterns are supported
- optional arguments
+ options
--list output verbose list of items (files, dirs, ...)
--filter STATUSCHARS only display items with the given status characters (listed in borg create --help)
-n, --dry-run do not change anything
diff --git a/docs/usage/serve.rst.inc b/docs/usage/serve.rst.inc
index 1c93098c..e40692b5 100644
--- a/docs/usage/serve.rst.inc
+++ b/docs/usage/serve.rst.inc
@@ -13,7 +13,7 @@ borg serve
.. class:: borg-options-table
+-------------------------------------------------------+-----------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | **optional arguments** |
+ | **options** |
+-------------------------------------------------------+-----------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| | ``--restrict-to-path PATH`` | restrict repository access to PATH. Can be specified multiple times to allow the client access to several directories. Access to all sub-directories is granted implicitly; PATH doesn't need to directly point to a repository. |
+-------------------------------------------------------+-----------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -40,7 +40,7 @@ borg serve
- optional arguments
+ options
--restrict-to-path PATH restrict repository access to PATH. Can be specified multiple times to allow the client access to several directories. Access to all sub-directories is granted implicitly; PATH doesn't need to directly point to a repository.
--restrict-to-repository PATH restrict repository access. Only the repository located at PATH (no sub-directories are considered) is accessible. Can be specified multiple times to allow the client access to several repositories. Unlike ``--restrict-to-path`` sub-directories are not accessible; PATH needs to directly point at a repository location. PATH may be an empty directory or the last element of PATH may not exist, in which case the client may initialize a repository there.
--append-only only allow appending to repository segment files. Note that this only affects the low level structure of the repository, and running `delete` or `prune` will still be allowed. See :ref:`append_only_mode` in Additional Notes for more details.
diff --git a/docs/usage/upgrade.rst.inc b/docs/usage/upgrade.rst.inc
index 9f94d2cf..bb7c88d9 100644
--- a/docs/usage/upgrade.rst.inc
+++ b/docs/usage/upgrade.rst.inc
@@ -17,7 +17,7 @@ borg upgrade
+-------------------------------------------------------+-----------------------+------------------------------------------------------------------------------------------------+
| | ``REPOSITORY`` | path to the repository to be upgraded |
+-------------------------------------------------------+-----------------------+------------------------------------------------------------------------------------------------+
- | **optional arguments** |
+ | **options** |
+-------------------------------------------------------+-----------------------+------------------------------------------------------------------------------------------------+
| | ``-n``, ``--dry-run`` | do not change repository |
+-------------------------------------------------------+-----------------------+------------------------------------------------------------------------------------------------+
@@ -48,7 +48,7 @@ borg upgrade
path to the repository to be upgraded
- optional arguments
+ options
-n, --dry-run do not change repository
--inplace rewrite repository in place, with no chance of going back to older versions of the repository.
--force Force upgrade
diff --git a/scripts/msys2-build b/scripts/msys2-build
new file mode 100644
index 00000000..9f6ff520
--- /dev/null
+++ b/scripts/msys2-build
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+python setup.py build_ext --inplace
+python setup.py bdist_wheel
+pyinstaller -y scripts/borg.exe.spec
diff --git a/scripts/msys2-install-deps b/scripts/msys2-install-deps
new file mode 100644
index 00000000..23d1fbcb
--- /dev/null
+++ b/scripts/msys2-install-deps
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+pacman -S --needed --noconfirm git mingw-w64-ucrt-x86_64-{toolchain,pkgconf,zstd,lz4,xxhash,openssl,python,cython,python-setuptools,python-wheel,python-pkgconfig,python-packaging,python-msgpack,python-pip}
+pip install pyinstaller
diff --git a/scripts/upload-pypi b/scripts/upload-pypi
index db0ef45f..d69c681c 100755
--- a/scripts/upload-pypi
+++ b/scripts/upload-pypi
@@ -8,9 +8,9 @@ if [ "$R" = "" ]; then
fi
if [ "$2" = "test" ]; then
- export TWINE_REPOSITORY_URL=https://test.pypi.org/legacy/
+ export TWINE_REPOSITORY=testpypi
else
- export TWINE_REPOSITORY_URL=
+ export TWINE_REPOSITORY=pypi
fi
D=dist/borgbackup-$R.tar.gz
diff --git a/scripts/win-build.ps1 b/scripts/win-build.ps1
deleted file mode 100644
index 79090c8b..00000000
--- a/scripts/win-build.ps1
+++ /dev/null
@@ -1,18 +0,0 @@
-# Build a wheel and single file executable
-
-# Configure the build environment
-& $PSScriptRoot\win-setup-build-env.ps1
-
-# Clean the old build
-python setup.py clean
-
-# Build the extension inplace
-python setup.py build_ext --inplace
-
-# Run pip install to install install_requires of borg.
-pip install -v -e .
-
-# Build the wheel
-python setup.py bdist_wheel
-
-pyinstaller -y scripts/borg.exe.spec
diff --git a/scripts/win-download-openssl.ps1 b/scripts/win-download-openssl.ps1
deleted file mode 100644
index 8040d0d1..00000000
--- a/scripts/win-download-openssl.ps1
+++ /dev/null
@@ -1,15 +0,0 @@
-# Download and extract the prebuilt openssl libraries provided by the python developers.
-# The file is extracted to the .\external directory.
-
-$url = "https://github.com/python/cpython-bin-deps/archive/openssl-bin-1.1.1c.zip"
-$dest = "external"
-
-$ErrorActionPreference = "Stop"
-
-Write-Output "Downloading OpenSSL from cpython-bin-deps repository ..."
-Invoke-WebRequest $url -OutFile openssl.zip
-
-Write-Output "Extracting OpenSSL"
-Expand-Archive -Path openssl.zip -DestinationPath $dest -Force
-
-Remove-Item -Path openssl.zip
diff --git a/scripts/win-setup-build-env.ps1 b/scripts/win-setup-build-env.ps1
deleted file mode 100644
index 19aaa21d..00000000
--- a/scripts/win-setup-build-env.ps1
+++ /dev/null
@@ -1,18 +0,0 @@
-# Configure the environment such that borg can be built and run.
-# Note that building borg requires OpenSSL which is not available by default.
-# Use the win-download-openssl.ps1 script to get correct OpenSSL version.
-
-$opensslPath = Resolve-Path "$PSScriptRoot\..\external\cpython-bin-deps-openssl-bin-1.1.1c\$env:PROCESSOR_ARCHITECTURE"
-if(!(Test-Path $opensslPath)) {
- Write-Host "OpenSSL not found! Please run win-download-openssl.ps1 and check if your platform is supported."
- exit
-}
-
-$env:BORG_OPENSSL_PREFIX = $opensslPath
-$env:BORG_USE_BUNDLED_B2 = "YES"
-$env:BORG_USE_BUNDLED_LZ4 = "YES"
-$env:BORG_USE_BUNDLED_ZSTD = "YES"
-$env:BORG_USE_BUNDLED_XXHASH = "YES"
-
-Write-Host "Environment configured for borg. The following variables where set:"
-Write-Host ( Get-ChildItem Env: | Where-Object { $_.Name.StartsWith("BORG_") } | Out-String )
diff --git a/setup.py b/setup.py
index 0a757e84..81b64e52 100644
--- a/setup.py
+++ b/setup.py
@@ -264,7 +264,7 @@ setup(
name='borgbackup',
use_scm_version={
'write_to': 'src/borg/_version.py',
- 'write_to_template': '__version__ = version = {version!r}\n__version_tuple__ = version_tuple = {version_tuple!r}\n',
+ 'write_to_template': '__version__ = version = {version!r}\n',
},
author='The Borg Collective (see AUTHORS file)',
author_email='borgbackup@python.org',
diff --git a/src/borg/_version.py b/src/borg/_version.py
index e04782e0..ccc430c6 100644
--- a/src/borg/_version.py
+++ b/src/borg/_version.py
@@ -1,2 +1 @@
-__version__ = version = '1.2.2'
-__version_tuple__ = version_tuple = (1, 2, 2)
+__version__ = version = '1.2.3'
diff --git a/src/borg/algorithms/checksums.c b/src/borg/algorithms/checksums.c
index d9b2c91d..3a49e666 100644
--- a/src/borg/algorithms/checksums.c
+++ b/src/borg/algorithms/checksums.c
@@ -3,12 +3,6 @@
/* BEGIN: Cython Metadata
{
"distutils": {
- "define_macros": [
- [
- "BORG_USE_BUNDLED_XXHASH",
- "YES"
- ]
- ],
"depends": [
"src/borg/algorithms/crc32_dispatch.c",
"src/borg/algorithms/xxhash-libselect.h"
@@ -20,12 +14,17 @@
],
"include_dirs": [
"src/borg/algorithms",
- "src/borg/algorithms/xxh64/"
+ "/opt/homebrew/Cellar/xxhash/0.8.1/include"
+ ],
+ "libraries": [
+ "xxhash"
+ ],
+ "library_dirs": [
+ "/opt/homebrew/Cellar/xxhash/0.8.1/lib"
],
"name": "borg.algorithms.checksums",
"sources": [
- "src/borg/algorithms/checksums.pyx",
- "src/borg/algorithms/xxh64/xxhash.c"
+ "src/borg/algorithms/checksums.pyx"
]
},
"module_name": "borg.algorithms.checksums"
diff --git a/src/borg/archive.py b/src/borg/archive.py
index e31380a0..f1da994d 100644
--- a/src/borg/archive.py
+++ b/src/borg/archive.py
@@ -28,7 +28,7 @@ from .crypto.low_level import IntegrityError as IntegrityErrorBase
from .hashindex import ChunkIndex, ChunkIndexEntry, CacheSynchronizer
from .helpers import Manifest
from .helpers import hardlinkable
-from .helpers import ChunkIteratorFileWrapper, open_item
+from .helpers import ChunkIteratorFileWrapper, normalize_chunker_params, open_item
from .helpers import Error, IntegrityError, set_ec
from .platform import uid2user, user2uid, gid2group, group2gid
from .helpers import parse_timestamp, to_localtime
@@ -349,7 +349,7 @@ class ChunkBuffer:
self.packer = msgpack.Packer()
self.chunks = []
self.key = key
- self.chunker = get_chunker(*chunker_params, seed=self.key.chunk_seed)
+ self.chunker = get_chunker(*chunker_params, seed=self.key.chunk_seed, sparse=False)
def add(self, item):
self.buffer.write(self.packer.pack(item.as_dict()))
@@ -547,12 +547,14 @@ class Archive:
if self.create:
info['command_line'] = sys.argv
else:
+ cp = self.metadata.get('chunker_params')
+ cp = normalize_chunker_params(cp) if cp is not None else ''
info.update({
'command_line': self.metadata.cmdline,
'hostname': self.metadata.hostname,
'username': self.metadata.username,
'comment': self.metadata.get('comment', ''),
- 'chunker_params': self.metadata.get('chunker_params', ''),
+ 'chunker_params': cp,
})
return info
@@ -630,14 +632,17 @@ Utilization of max. archive size: {csize_max:.0%}
'time_end': end.strftime(ISO_FORMAT),
'chunker_params': self.chunker_params,
}
- if stats is not None:
- metadata.update({
- 'size': stats.osize,
- 'csize': stats.csize,
- 'nfiles': stats.nfiles,
- 'size_parts': stats.osize_parts,
- 'csize_parts': stats.csize_parts,
- 'nfiles_parts': stats.nfiles_parts})
+ # we always want to create archives with the addtl. metadata (nfiles, etc.),
+ # because borg info relies on them. so, either use the given stats (from args)
+ # or fall back to self.stats if it was not given.
+ stats = stats or self.stats
+ metadata.update({
+ 'size': stats.osize,
+ 'csize': stats.csize,
+ 'nfiles': stats.nfiles,
+ 'size_parts': stats.osize_parts,
+ 'csize_parts': stats.csize_parts,
+ 'nfiles_parts': stats.nfiles_parts})
metadata.update(additional_metadata or {})
metadata = ArchiveItem(metadata)
data = self.key.pack_and_authenticate_metadata(metadata.as_dict(), context=b'archive')
@@ -1157,15 +1162,19 @@ class MetadataCollector:
def stat_ext_attrs(self, st, path, fd=None):
attrs = {}
- with backup_io('extended stat'):
- flags = 0 if self.noflags else get_flags(path, st, fd=fd)
- xattrs = {} if self.noxattrs else xattr.get_all(fd or path, follow_symlinks=False)
- if not self.noacls:
+ if not self.noflags:
+ with backup_io('extended stat (flags)'):
+ flags = get_flags(path, st, fd=fd)
+ if flags:
+ attrs['bsdflags'] = flags
+ if not self.noxattrs:
+ with backup_io('extended stat (xattrs)'):
+ xattrs = xattr.get_all(fd or path, follow_symlinks=False)
+ if xattrs:
+ attrs['xattrs'] = StableDict(xattrs)
+ if not self.noacls:
+ with backup_io('extended stat (ACLs)'):
acl_get(path, attrs, st, self.numeric_ids, fd=fd)
- if xattrs:
- attrs['xattrs'] = StableDict(xattrs)
- if flags:
- attrs['bsdflags'] = flags
return attrs
def stat_attrs(self, st, path, fd=None):
@@ -2236,8 +2245,7 @@ class ArchiveRecreater:
'recreate_cmdline': sys.argv,
}
- target.save(comment=comment, timestamp=self.timestamp,
- stats=target.stats, additional_metadata=additional_metadata)
+ target.save(comment=comment, timestamp=self.timestamp, additional_metadata=additional_metadata)
if replace_original:
archive.delete(Statistics(), progress=self.progress)
target.rename(archive.name)
@@ -2298,18 +2306,17 @@ class ArchiveRecreater:
target_name = target_name or archive.name + '.recreate'
target = self.create_target_archive(target_name)
# If the archives use the same chunker params, then don't rechunkify
- source_chunker_params = tuple(archive.metadata.get('chunker_params', []))
- if len(source_chunker_params) == 4 and isinstance(source_chunker_params[0], int):
- # this is a borg < 1.2 chunker_params tuple, no chunker algo specified, but we only had buzhash:
- source_chunker_params = (CH_BUZHASH, ) + source_chunker_params
- target.recreate_rechunkify = self.rechunkify and source_chunker_params != target.chunker_params
+ src_cp = archive.metadata.get('chunker_params')
+ src_cp = normalize_chunker_params(src_cp) if src_cp is not None else None
+ dst_cp = target.chunker_params
+ target.recreate_rechunkify = self.rechunkify and src_cp != dst_cp
if target.recreate_rechunkify:
- logger.debug('Rechunking archive from %s to %s', source_chunker_params or '(unknown)', target.chunker_params)
+ logger.debug('Rechunking archive from %s to %s', src_cp or '(unknown)', dst_cp)
target.process_file_chunks = ChunksProcessor(
cache=self.cache, key=self.key,
add_item=target.add_item, write_checkpoint=target.write_checkpoint,
checkpoint_interval=self.checkpoint_interval, rechunkify=target.recreate_rechunkify).process_file_chunks
- target.chunker = get_chunker(*target.chunker_params, seed=self.key.chunk_seed)
+ target.chunker = get_chunker(*target.chunker_params, seed=self.key.chunk_seed, sparse=False)
return target
def create_target_archive(self, name):
diff --git a/src/borg/archiver.py b/src/borg/archiver.py
index 8afc4079..8cc3a7b0 100644
--- a/src/borg/archiver.py
+++ b/src/borg/archiver.py
@@ -67,7 +67,7 @@ try:
from .helpers import ProgressIndicatorPercent
from .helpers import basic_json_data, json_print
from .helpers import replace_placeholders
- from .helpers import ChunkIteratorFileWrapper
+ from .helpers import ChunkIteratorFileWrapper, normalize_chunker_params
from .helpers import popen_with_error_handling, prepare_subprocess_env, create_filter_process
from .helpers import dash_open
from .helpers import umount
@@ -327,7 +327,7 @@ class Archiver:
return EXIT_ERROR
if args.repo_only and any(
(args.verify_data, args.first, args.last, args.prefix is not None, args.glob_archives)):
- self.print_error("--repository-only contradicts --first, --last, --prefix and --verify-data arguments.")
+ self.print_error("--repository-only contradicts --first, --last, --glob-archives, --prefix and --verify-data arguments.")
return EXIT_ERROR
if args.repair and args.max_duration:
self.print_error("--repair does not allow --max-duration argument.")
@@ -626,7 +626,7 @@ class Archiver:
# we already have a checkpoint archive in this case.
self.print_error("Got Ctrl-C / SIGINT.")
else:
- archive.save(comment=args.comment, timestamp=args.timestamp, stats=archive.stats)
+ archive.save(comment=args.comment, timestamp=args.timestamp)
args.stats |= args.json
if args.stats:
if args.json:
@@ -810,8 +810,11 @@ class Archiver:
restrict_dev=restrict_dev, read_special=read_special, dry_run=dry_run)
self.print_file_status('x', path)
return
- if not recurse_excluded_dir and not dry_run:
- status = fso.process_dir_with_fd(path=path, fd=child_fd, st=st)
+ if not recurse_excluded_dir:
+ if not dry_run:
+ status = fso.process_dir_with_fd(path=path, fd=child_fd, st=st)
+ else:
+ status = '-'
if recurse:
with backup_io('scandir'):
entries = helpers.scandir_inorder(path=path, fd=child_fd)
@@ -1125,9 +1128,18 @@ class Archiver:
archive2 = Archive(repository, key, manifest, args.archive2,
consider_part_files=args.consider_part_files)
- can_compare_chunk_ids = archive1.metadata.get('chunker_params', False) == archive2.metadata.get(
- 'chunker_params', True) or args.same_chunker_params
- if not can_compare_chunk_ids:
+ cp1 = archive1.metadata.get('chunker_params')
+ cp2 = archive2.metadata.get('chunker_params')
+ if args.same_chunker_params:
+ can_compare_chunk_ids = True # enforce it
+ elif cp1 is not None and cp2 is not None:
+ # we know chunker params of both archives
+ can_compare_chunk_ids = normalize_chunker_params(cp1) == normalize_chunker_params(cp2)
+ if not can_compare_chunk_ids:
+ self.print_warning('--chunker-params are different between archives, diff will be slow.')
+ else:
+ # we do not know chunker params of at least one of the archives
+ can_compare_chunk_ids = False
self.print_warning('--chunker-params might be different between archives, diff will be slow.\n'
'If you know for certain that they are the same, pass --same-chunker-params '
'to override this check.')
@@ -2544,7 +2556,7 @@ class Archiver:
borg create /path/to/repo::{hostname}-{user}-{utcnow} ...
borg create /path/to/repo::{hostname}-{now:%Y-%m-%d_%H:%M:%S} ...
- borg prune --prefix '{hostname}-' ...
+ borg prune --glob-archives '{hostname}-*' ...
.. note::
systemd uses a difficult, non-standard syntax for command lines in unit files (refer to
@@ -2936,12 +2948,11 @@ class Archiver:
'Archive filters can be applied to repository targets.')
group = filters_group.add_mutually_exclusive_group()
group.add_argument('-P', '--prefix', metavar='PREFIX', dest='prefix', type=PrefixSpec, action=Highlander,
- help='only consider archive names starting with this prefix.')
+ help='only consider archive names starting with this prefix. (deprecated)')
group.add_argument('-a', '--glob-archives', metavar='GLOB', dest='glob_archives',
type=GlobSpec, action=Highlander,
help='only consider archive names matching the glob. '
- 'sh: rules apply, see "borg help patterns". '
- '``--prefix`` and ``--glob-archives`` are mutually exclusive.')
+ 'sh: rules apply, see "borg help patterns".')
if sort_by:
sort_by_default = 'timestamp'
@@ -3605,7 +3616,7 @@ class Archiver:
subparser.add_argument('location', metavar='ARCHIVE',
type=location_validator(archive=True),
help='name of archive to create (must be also a valid directory name)')
- subparser.add_argument('paths', metavar='PATH', nargs='*', type=str,
+ subparser.add_argument('paths', metavar='PATH', nargs='*', type=str, action='extend',
help='paths to archive')
# borg debug
@@ -3825,11 +3836,9 @@ class Archiver:
that is how much your repository will shrink.
Please note that the "All archives" stats refer to the state after deletion.
- You can delete multiple archives by specifying their common prefix, if they
- have one, using the ``--prefix PREFIX`` option. You can also specify a shell
- pattern to match multiple archives using the ``--glob-archives GLOB`` option
- (for more info on these patterns, see :ref:`borg_patterns`). Note that these
- two options are mutually exclusive.
+ You can delete multiple archives by specifying a shell pattern to match
+ multiple archives using the ``--glob-archives GLOB`` option (for more info on
+ these patterns, see :ref:`borg_patterns`).
To avoid accidentally deleting archives, especially when using glob patterns,
it might be helpful to use the ``--dry-run`` to test out the command without
@@ -3924,7 +3933,7 @@ class Archiver:
- .tar.gz or .tgz: gzip
- .tar.bz2 or .tbz: bzip2
- .tar.xz or .txz: xz
- - .tar.zstd: zstd
+ - .tar.zstd or .tar.zst: zstd
- .tar.lz4: lz4
Alternatively, a ``--tar-filter`` program may be explicitly specified. It should
@@ -4867,7 +4876,7 @@ class Archiver:
- .tar.gz or .tgz: gzip -d
- .tar.bz2 or .tbz: bzip2 -d
- .tar.xz or .txz: xz -d
- - .tar.zstd: zstd -d
+ - .tar.zstd or .tar.zst: zstd -d
- .tar.lz4: lz4 -d
Alternatively, a --tar-filter program may be explicitly specified. It should
diff --git a/src/borg/compress.c b/src/borg/compress.c
index 13176c0d..e18a4ec5 100644
--- a/src/borg/compress.c
+++ b/src/borg/compress.c
@@ -13,12 +13,18 @@
"-Wpointer-arith"
],
"include_dirs": [
- "src/borg"
+ "src/borg",
+ "/opt/homebrew/Cellar/lz4/1.9.4/include",
+ "/opt/homebrew/Cellar/zstd/1.5.2/include"
],
"libraries": [
"lz4",
"zstd"
],
+ "library_dirs": [
+ "/opt/homebrew/Cellar/lz4/1.9.4/lib",
+ "/opt/homebrew/Cellar/zstd/1.5.2/lib"
+ ],
"name": "borg.compress",
"sources": [
"src/borg/compress.pyx"
diff --git a/src/borg/crypto/file_integrity.py b/src/borg/crypto/file_integrity.py
index 87518a2a..76503057 100644
--- a/src/borg/crypto/file_integrity.py
+++ b/src/borg/crypto/file_integrity.py
@@ -127,6 +127,7 @@ class IntegrityCheckedFile(FileLikeWrapper):
self.writing = write
mode = 'wb' if write else 'rb'
self.file_fd = override_fd or open(path, mode)
+ self.file_opened = override_fd is None
self.digests = {}
hash_cls = XXH64FileHashingWrapper
@@ -189,9 +190,13 @@ class IntegrityCheckedFile(FileLikeWrapper):
def __exit__(self, exc_type, exc_val, exc_tb):
exception = exc_type is not None
- if not exception:
- self.hash_part('final', is_final=True)
- self.hasher.__exit__(exc_type, exc_val, exc_tb)
+ try:
+ if not exception:
+ self.hash_part("final", is_final=True)
+ self.hasher.__exit__(exc_type, exc_val, exc_tb)
+ finally:
+ if self.file_opened:
+ self.file_fd.close()
if exception:
return
if self.writing:
diff --git a/src/borg/crypto/low_level.c b/src/borg/crypto/low_level.c
index 481a95b4..67acb0f4 100644
--- a/src/borg/crypto/low_level.c
+++ b/src/borg/crypto/low_level.c
@@ -4,6 +4,9 @@
{
"distutils": {
"depends": [
+ "/opt/homebrew/opt/openssl@1.1/include/openssl/crypto.h",
+ "/opt/homebrew/opt/openssl@1.1/include/openssl/evp.h",
+ "/opt/homebrew/opt/openssl@1.1/include/openssl/hmac.h",
"src/borg/crypto/_crypto_helpers.h"
],
"extra_compile_args": [
@@ -12,11 +15,15 @@
"-Wpointer-arith"
],
"include_dirs": [
- "src/borg/crypto"
+ "src/borg/crypto",
+ "/opt/homebrew/opt/openssl@1.1/include"
],
"libraries": [
"crypto"
],
+ "library_dirs": [
+ "/opt/homebrew/opt/openssl@1.1/lib"
+ ],
"name": "borg.crypto.low_level",
"sources": [
"src/borg/crypto/low_level.pyx",
diff --git a/src/borg/helpers/fs.py b/src/borg/helpers/fs.py
index 2ef06a55..fde2fe5c 100644
--- a/src/borg/helpers/fs.py
+++ b/src/borg/helpers/fs.py
@@ -18,9 +18,6 @@ from ..logger import create_logger
logger = create_logger()
-py_37_plus = sys.version_info >= (3, 7)
-
-
def ensure_dir(path, mode=stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO, pretty_deadly=True):
"""
Ensures that the dir exists with the right permissions.
@@ -184,8 +181,7 @@ def scandir_keyfunc(dirent):
def scandir_inorder(*, path, fd=None):
- # py37+ supports giving an fd instead of a path (no full entry.path in DirEntry in that case!)
- arg = fd if fd is not None and py_37_plus else path
+ arg = fd if fd is not None else path
return sorted(os.scandir(arg), key=scandir_keyfunc)
diff --git a/src/borg/helpers/misc.py b/src/borg/helpers/misc.py
index 96eb7899..b62e066b 100644
--- a/src/borg/helpers/misc.py
+++ b/src/borg/helpers/misc.py
@@ -16,6 +16,7 @@ from .time import to_localtime
from . import msgpack
from .. import __version__ as borg_version
from .. import chunker
+from ..constants import CH_BUZHASH, CH_FIXED
def prune_within(archives, hours, kept_because):
@@ -119,6 +120,17 @@ def log_multi(*msgs, level=logging.INFO, logger=logger):
logger.log(level, line)
+def normalize_chunker_params(cp):
+ assert isinstance(cp, (list, tuple))
+ if isinstance(cp, list):
+ cp = tuple(cp)
+ if len(cp) == 4 and isinstance(cp[0], int):
+ # this is a borg < 1.2 chunker_params tuple, no chunker algo specified, but we only had buzhash:
+ cp = (CH_BUZHASH, ) + cp
+ assert cp[0] in (CH_BUZHASH, CH_FIXED)
+ return cp
+
+
class ChunkIteratorFileWrapper:
"""File-like wrapper for chunk iterators"""
@@ -248,7 +260,7 @@ def get_tar_filter(fname, decompress):
filter = 'xz -d' if decompress else 'xz'
elif fname.endswith(('.tar.lz4', )):
filter = 'lz4 -d' if decompress else 'lz4'
- elif fname.endswith(('.tar.zstd', )):
+ elif fname.endswith(('.tar.zstd', '.tar.zst')):
filter = 'zstd -d' if decompress else 'zstd'
else:
filter = None
diff --git a/src/borg/repository.py b/src/borg/repository.py
index 814f9b03..61905b39 100644
--- a/src/borg/repository.py
+++ b/src/borg/repository.py
@@ -613,7 +613,7 @@ class Repository:
os.fsync(fd.fileno())
def rename_tmp(file):
- os.rename(file + '.tmp', file)
+ os.replace(file + ".tmp", file)
hints = {
b'version': 2,
@@ -1027,6 +1027,7 @@ class Repository:
t_start = time.monotonic()
pi = ProgressIndicatorPercent(total=segment_count, msg='Checking segments %3.1f%%', step=0.1,
msgid='repository.check')
+ segment = -1 # avoid uninitialized variable if there are no segment files at all
for i, (segment, filename) in enumerate(self.io.segment_iterator()):
pi.show(i)
if segment <= last_segment_checked:
@@ -1357,13 +1358,12 @@ class LoggedIO:
def cleanup(self, transaction_id):
"""Delete segment files left by aborted transactions
"""
+ self.close_segment()
self.segment = transaction_id + 1
count = 0
for segment, filename in self.segment_iterator(reverse=True):
if segment > transaction_id:
- if segment in self.fds:
- del self.fds[segment]
- safe_unlink(filename)
+ self.delete_segment(segment)
count += 1
else:
break
diff --git a/src/borg/testsuite/archiver.py b/src/borg/testsuite/archiver.py
index 1105a3b6..e4f293be 100644
--- a/src/borg/testsuite/archiver.py
+++ b/src/borg/testsuite/archiver.py
@@ -1393,14 +1393,14 @@ class ArchiverTestCase(ArchiverTestCaseBase):
self.cmd('extract', self.repository_location + '::test')
assert xattr.getxattr(b'input/file', b'security.capability') == capabilities
- @pytest.mark.skipif(not xattr.XATTR_FAKEROOT, reason='xattr not supported on this system or on this version of'
+ @pytest.mark.skipif(not xattr.XATTR_FAKEROOT, reason='xattr not supported on this system or on this version of '
'fakeroot')
def test_extract_xattrs_errors(self):
def patched_setxattr_E2BIG(*args, **kwargs):
raise OSError(errno.E2BIG, 'E2BIG')
- def patched_setxattr_ENOTSUP(*args, **kwargs):
- raise OSError(errno.ENOTSUP, 'ENOTSUP')
+ def patched_setxattr_ENOSPC(*args, **kwargs):
+ raise OSError(errno.ENOSPC, 'ENOSPC')
def patched_setxattr_EACCES(*args, **kwargs):
raise OSError(errno.EACCES, 'EACCES')
@@ -1413,15 +1413,15 @@ class ArchiverTestCase(ArchiverTestCaseBase):
input_abspath = os.path.abspath('input/file')
with patch.object(xattr, 'setxattr', patched_setxattr_E2BIG):
out = self.cmd('extract', self.repository_location + '::test', exit_code=EXIT_WARNING)
- assert ': when setting extended attribute user.attribute: too big for this filesystem\n' in out
+ assert 'when setting extended attribute user.attribute: too big for this filesystem' in out
os.remove(input_abspath)
- with patch.object(xattr, 'setxattr', patched_setxattr_ENOTSUP):
+ with patch.object(xattr, 'setxattr', patched_setxattr_ENOSPC):
out = self.cmd('extract', self.repository_location + '::test', exit_code=EXIT_WARNING)
- assert ': when setting extended attribute user.attribute: xattrs not supported on this filesystem\n' in out
+ assert 'when setting extended attribute user.attribute: fs full or xattr too big?' in out
os.remove(input_abspath)
with patch.object(xattr, 'setxattr', patched_setxattr_EACCES):
out = self.cmd('extract', self.repository_location + '::test', exit_code=EXIT_WARNING)
- assert ': when setting extended attribute user.attribute: Permission denied\n' in out
+ assert 'when setting extended attribute user.attribute:' in out
assert os.path.isfile(input_abspath)
def test_path_normalization(self):
@@ -1575,7 +1575,7 @@ class ArchiverTestCase(ArchiverTestCaseBase):
self.cmd('create', self.repository_location + '::another_test.2', 'input')
self.cmd('extract', '--dry-run', self.repository_location + '::test')
self.cmd('extract', '--dry-run', self.repository_location + '::test.2')
- self.cmd('delete', '--prefix', 'another_', self.repository_location)
+ self.cmd('delete', '--glob-archives', 'another_*', self.repository_location)
self.cmd('delete', '--last', '1', self.repository_location)
self.cmd('delete', self.repository_location + '::test')
self.cmd('extract', '--dry-run', self.repository_location + '::test.2')
@@ -1854,15 +1854,11 @@ class ArchiverTestCase(ArchiverTestCaseBase):
@pytest.mark.allow_cache_wipe
def test_unknown_mandatory_feature_in_cache(self):
- if self.prefix:
- path_prefix = 'ssh://__testsuite__'
- else:
- path_prefix = ''
-
+ remote_repo = bool(self.prefix)
print(self.cmd('init', '--encryption=repokey', self.repository_location))
with Repository(self.repository_path, exclusive=True) as repository:
- if path_prefix:
+ if remote_repo:
repository._location = Location(self.repository_location)
manifest, key = Manifest.load(repository, Manifest.NO_OPERATION_CHECK)
with Cache(repository, key, manifest) as cache:
@@ -1887,7 +1883,7 @@ class ArchiverTestCase(ArchiverTestCaseBase):
assert called
with Repository(self.repository_path, exclusive=True) as repository:
- if path_prefix:
+ if remote_repo:
repository._location = Location(self.repository_location)
manifest, key = Manifest.load(repository, Manifest.NO_OPERATION_CHECK)
with Cache(repository, key, manifest) as cache:
@@ -2263,12 +2259,12 @@ class ArchiverTestCase(ArchiverTestCaseBase):
self.assert_in('2015-08-12-10:00-bar', output)
self.assert_in('2015-08-12-20:00-bar', output)
- def test_list_prefix(self):
+ def test_list_glob(self):
self.cmd('init', '--encryption=repokey', self.repository_location)
self.cmd('create', self.repository_location + '::test-1', src_dir)
self.cmd('create', self.repository_location + '::something-else-than-test-1', src_dir)
self.cmd('create', self.repository_location + '::test-2', src_dir)
- output = self.cmd('list', '--prefix=test-', self.repository_location)
+ output = self.cmd('list', '--glob-archives=test-*', self.repository_location)
self.assert_in('test-1', output)
self.assert_in('test-2', output)
self.assert_not_in('something-else', output)
@@ -2676,13 +2672,13 @@ class ArchiverTestCase(ArchiverTestCaseBase):
assert sorted(os.listdir(os.path.join(mountpoint))) == ['arch11', 'arch12']
with self.fuse_mount(self.repository_location, mountpoint, '--last=2', '--sort=name'):
assert sorted(os.listdir(os.path.join(mountpoint))) == ['arch21', 'arch22']
- with self.fuse_mount(self.repository_location, mountpoint, '--prefix=arch1'):
+ with self.fuse_mount(self.repository_location, mountpoint, '--glob-archives=arch1*'):
assert sorted(os.listdir(os.path.join(mountpoint))) == ['arch11', 'arch12']
- with self.fuse_mount(self.repository_location, mountpoint, '--prefix=arch2'):
+ with self.fuse_mount(self.repository_location, mountpoint, '--glob-archives=arch2*'):
assert sorted(os.listdir(os.path.join(mountpoint))) == ['arch21', 'arch22']
- with self.fuse_mount(self.repository_location, mountpoint, '--prefix=arch'):
+ with self.fuse_mount(self.repository_location, mountpoint, '--glob-archives=arch*'):
assert sorted(os.listdir(os.path.join(mountpoint))) == ['arch11', 'arch12', 'arch21', 'arch22']
- with self.fuse_mount(self.repository_location, mountpoint, '--prefix=nope'):
+ with self.fuse_mount(self.repository_location, mountpoint, '--glob-archives=nope*'):
assert sorted(os.listdir(os.path.join(mountpoint))) == []
@unittest.skipUnless(llfuse, 'llfuse not installed')
@@ -2992,6 +2988,21 @@ class ArchiverTestCase(ArchiverTestCaseBase):
assert not int(self.cmd('list', self.repository_location + '::test1', 'input/large_file',
'--format', '{unique_chunks}'))
+ def test_recreate_fixed_rechunkify(self):
+ with open(os.path.join(self.input_path, 'file'), 'wb') as fd:
+ fd.write(b'a' * 8192)
+ self.cmd('init', '--encryption=repokey', self.repository_location)
+ self.cmd('create', '--chunker-params', '7,9,8,128', self.repository_location + '::test', 'input')
+ output = self.cmd('list', self.repository_location + '::test', 'input/file',
+ '--format', '{num_chunks}')
+ num_chunks = int(output)
+ assert num_chunks > 2
+ self.cmd('recreate', self.repository_location, '--chunker-params', 'fixed,4096')
+ output = self.cmd('list', self.repository_location + '::test', 'input/file',
+ '--format', '{num_chunks}')
+ num_chunks = int(output)
+ assert num_chunks == 2
+
def test_recreate_recompress(self):
self.create_regular_file('compressible', size=10000)
self.cmd('init', '--encryption=repokey', self.repository_location)
@@ -3486,7 +3497,7 @@ id: 2 / e29442 3506da 4e1ea7 / 25f62a 5a3d41 - 02
assert 'Attic repository detected.' in output
# derived from test_extract_xattrs_errors()
- @pytest.mark.skipif(not xattr.XATTR_FAKEROOT, reason='xattr not supported on this system or on this version of'
+ @pytest.mark.skipif(not xattr.XATTR_FAKEROOT, reason='xattr not supported on this system or on this version of '
'fakeroot')
def test_do_not_fail_when_percent_is_in_xattr_name(self):
"""https://github.com/borgbackup/borg/issues/6063"""
@@ -3502,7 +3513,7 @@ id: 2 / e29442 3506da 4e1ea7 / 25f62a 5a3d41 - 02
self.cmd('extract', self.repository_location + '::test', exit_code=EXIT_WARNING)
# derived from test_extract_xattrs_errors()
- @pytest.mark.skipif(not xattr.XATTR_FAKEROOT, reason='xattr not supported on this system or on this version of'
+ @pytest.mark.skipif(not xattr.XATTR_FAKEROOT, reason='xattr not supported on this system or on this version of '
'fakeroot')
def test_do_not_fail_when_percent_is_in_file_name(self):
"""https://github.com/borgbackup/borg/issues/6063"""
@@ -3639,7 +3650,7 @@ class ArchiverCheckTestCase(ArchiverTestCaseBase):
output = self.cmd('check', '-v', '--archives-only', self.repository_location, exit_code=0)
self.assert_not_in('Starting repository check', output)
self.assert_in('Starting archive consistency check', output)
- output = self.cmd('check', '-v', '--archives-only', '--prefix=archive2', self.repository_location, exit_code=0)
+ output = self.cmd('check', '-v', '--archives-only', '--glob-archives=archive2', self.repository_location, exit_code=0)
self.assert_not_in('archive1', output)
output = self.cmd('check', '-v', '--archives-only', '--first=1', self.repository_location, exit_code=0)
self.assert_in('archive1', output)
diff --git a/src/borg/testsuite/hashindex.py b/src/borg/testsuite/hashindex.py
index 89a793a9..fef6c5dd 100644
--- a/src/borg/testsuite/hashindex.py
+++ b/src/borg/testsuite/hashindex.py
@@ -197,8 +197,8 @@ class HashIndexSizeTestCase(BaseTestCase):
for i in range(1234):
idx[H(i)] = i, i**2, i**3
with tempfile.NamedTemporaryFile() as file:
- idx.write(file.name)
- size = os.path.getsize(file.name)
+ idx.write(file)
+ size = os.path.getsize(file.fileno())
assert idx.size() == size
diff --git a/src/borg/testsuite/repository.py b/src/borg/testsuite/repository.py
index c52820e3..c5157492 100644
--- a/src/borg/testsuite/repository.py
+++ b/src/borg/testsuite/repository.py
@@ -720,7 +720,7 @@ class RepositoryCheckTestCase(RepositoryTestCaseBase):
fd.write(b'BOOM')
def delete_segment(self, segment):
- os.unlink(os.path.join(self.tmppath, 'repository', 'data', '0', str(segment)))
+ self.repository.io.delete_segment(segment)
def delete_index(self):
os.unlink(os.path.join(self.tmppath, 'repository', f'index.{self.get_head()}'))
@@ -1002,6 +1002,14 @@ class RemoteRepositoryCheckTestCase(RepositoryCheckTestCase):
# skip this test, we can't mock-patch a Repository class in another process!
pass
+ def test_repair_missing_commit_segment(self):
+ # skip this test, files in RemoteRepository cannot be deleted
+ pass
+
+ def test_repair_missing_segment(self):
+ # skip this test, files in RemoteRepository cannot be deleted
+ pass
+
class RemoteLoggerTestCase(BaseTestCase):
def setUp(self):
diff --git a/src/borg/xattr.py b/src/borg/xattr.py
index 8a731340..7bc63a75 100644
--- a/src/borg/xattr.py
+++ b/src/borg/xattr.py
@@ -80,21 +80,14 @@ def get_all(path, follow_symlinks=False):
# borg always did it like that...
result[name] = getxattr(path, name, follow_symlinks=follow_symlinks) or None
except OSError as e:
- name_str = name.decode()
- if isinstance(path, int):
- path_str = '<FD %d>' % path
- else:
- path_str = os.fsdecode(path)
- if e.errno == ENOATTR:
- # if we get ENOATTR, a race has happened: xattr names were deleted after list.
- # we just ignore the now missing ones. if you want consistency, do snapshots.
+ # note: platform.xattr._check has already made a nice exception e with errno, msg, path/fd
+ if e.errno in (ENOATTR, ): # errors we just ignore silently
+ # ENOATTR: a race has happened: xattr names were deleted after list.
pass
- elif e.errno == errno.EPERM:
- # we were not permitted to read this attribute, still can continue trying to read others
- logger.warning('{}: Operation not permitted when reading extended attribute {}'.format(
- path_str, name_str))
- else:
- raise
+ else: # all others: warn, skip this single xattr name, continue processing other xattrs
+ # EPERM: we were not permitted to read this attribute
+ # EINVAL: maybe xattr name is invalid or other issue, #6988
+ logger.warning('when getting extended attribute %s: %s', name.decode(errors='replace'), str(e))
except OSError as e:
if e.errno in (errno.ENOTSUP, errno.EPERM):
# if xattrs are not supported on the filesystem, we give up.
@@ -126,24 +119,18 @@ def set_all(path, xattrs, follow_symlinks=False):
# if we have a None value, it means "empty", so give b'' to setxattr in that case:
setxattr(path, k, v or b'', follow_symlinks=follow_symlinks)
except OSError as e:
+ # note: platform.xattr._check has already made a nice exception e with errno, msg, path/fd
warning = True
- k_str = k.decode()
- if isinstance(path, int):
- path_str = '<FD %d>' % path
- else:
- path_str = os.fsdecode(path)
if e.errno == errno.E2BIG:
- err_str = 'too big for this filesystem'
- elif e.errno == errno.ENOTSUP:
- err_str = 'xattrs not supported on this filesystem'
+ err_str = 'too big for this filesystem (%s)' % str(e)
elif e.errno == errno.ENOSPC:
# ext4 reports ENOSPC when trying to set an xattr with >4kiB while ext4 can only support 4kiB xattrs
# (in this case, this is NOT a "disk full" error, just a ext4 limitation).
- err_str = 'no space left on device [xattr len = %d]' % (len(v),)
+ err_str = 'fs full or xattr too big? [xattr len = %d] (%s)' % (len(v), str(e))
else:
# generic handler
# EACCES: permission denied to set this specific xattr (this may happen related to security.* keys)
# EPERM: operation not permitted
- err_str = os.strerror(e.errno)
- logger.warning('%s: when setting extended attribute %s: %s', path_str, k_str, err_str)
+ err_str = str(e)
+ logger.warning('when setting extended attribute %s: %s', k.decode(errors='replace'), err_str)
return warning
diff --git a/src/borgbackup.egg-info/PKG-INFO b/src/borgbackup.egg-info/PKG-INFO
index b59991ef..1cecd97e 100644
--- a/src/borgbackup.egg-info/PKG-INFO
+++ b/src/borgbackup.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: borgbackup
-Version: 1.2.2
+Version: 1.2.3
Summary: Deduplicated, encrypted, authenticated and compressed backups
Home-page: https://borgbackup.readthedocs.io/
Author: The Borg Collective (see AUTHORS file)
diff --git a/src/borgbackup.egg-info/SOURCES.txt b/src/borgbackup.egg-info/SOURCES.txt
index b8ce98bf..733c983a 100644
--- a/src/borgbackup.egg-info/SOURCES.txt
+++ b/src/borgbackup.egg-info/SOURCES.txt
@@ -1,4 +1,3 @@
-.appveyor.yml
.coveragerc
AUTHORS
CHANGES.rst
@@ -189,12 +188,11 @@ scripts/borg.exe.spec
scripts/errorlist.py
scripts/glibc_check.py
scripts/hash_sizes.py
+scripts/msys2-build
+scripts/msys2-install-deps
scripts/sdist-sign
scripts/sign-binaries
scripts/upload-pypi
-scripts/win-build.ps1
-scripts/win-download-openssl.ps1
-scripts/win-setup-build-env.ps1
scripts/fuzz-cache-sync/HOWTO
scripts/fuzz-cache-sync/main.c
scripts/fuzz-cache-sync/testcase_dir/test_simple
diff --git a/tox.ini b/tox.ini
index 0f727bf9..24df608c 100644
--- a/tox.ini
+++ b/tox.ini
@@ -22,6 +22,10 @@ commands = py.test -v -n {env:XDISTN:1} -rs --cov=borg --cov-config=.coveragerc
passenv = *
+[testenv:.pkg]
+passenv = * # needed by tox4, so env vars are visible for building borg
+
+
[testenv:flake8]
skip_sdist=true
skip_install=true