diff --git a/LICENSE b/LICENSE index e425c4775..6551b9d53 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (C) 2015-2022 The Borg Collective (see AUTHORS file) +Copyright (C) 2015-2023 The Borg Collective (see AUTHORS file) Copyright (C) 2010-2014 Jonas Borgström All rights reserved. diff --git a/SECURITY.md b/SECURITY.md index 32389e43b..64c6c54dc 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -7,7 +7,7 @@ These borg releases are currently supported with security updates. | Version | Supported | |---------|--------------------| | 1.2.x | :white_check_mark: | -| 1.1.x | :white_check_mark: | +| 1.1.x | :x: | | < 1.1 | :x: | ## Reporting a Vulnerability diff --git a/docs/changes.rst b/docs/changes.rst index e662a20bc..7b828b3e6 100644 --- a/docs/changes.rst +++ b/docs/changes.rst @@ -217,16 +217,14 @@ The best check that everything is ok is to run a dry-run extraction:: Change Log ========== -Version 1.2.4 (not released yet) --------------------------------- +Version 1.2.4 (2023-03-24) +-------------------------- Upgrade notes: Some things can be recommended for the upgrade process from borg 1.1.x (please also read the important compatibility notes below): -- do you already want to upgrade? 1.1.x also will get fixes for a while. -- be careful, first upgrade your less critical / smaller repos. - first upgrade to a recent 1.1.x release - especially if you run some older 1.1.* or even 1.0.* borg release. - using that, run at least one `borg create` (your normal backup), `prune` @@ -300,6 +298,7 @@ Compatibility notes: New features: +- import-tar: add --ignore-zeros to process concatenated tars, #7432. - debug id-hash: computes file/chunk content id-hash, #7406 - diff: --content-only does not show mode/ctime/mtime changes, #7248 - diff: JSON strings in diff output are now sorted alphabetically @@ -329,6 +328,7 @@ Other changes: - remove BORG_LIBB2_PREFIX (not used any more) - docs: + - BORG_KEY_FILE: clarify docs, #7444 - update FAQ about locale/unicode issues, #6999 - improve mount options rendering, #7359 - make timestamps in manual pages reproducible diff --git a/docs/conf.py b/docs/conf.py index b98fdbc3f..8ac407cc6 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -40,7 +40,7 @@ master_doc = 'index' # General information about the project. project = 'Borg - Deduplicating Archiver' -copyright = '2010-2014 Jonas Borgström, 2015-2022 The Borg Collective (see AUTHORS file)' +copyright = '2010-2014 Jonas Borgström, 2015-2023 The Borg Collective (see AUTHORS file)' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the diff --git a/docs/man/borg-benchmark-crud.1 b/docs/man/borg-benchmark-crud.1 index 7dfcabc34..34c1cb01e 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-12-24" "" "borg backup tool" +.TH "BORG-BENCHMARK-CRUD" 1 "2023-03-22" "" "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 2d2045201..a0127a4ed 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-12-24" "" "borg backup tool" +.TH "BORG-BENCHMARK" 1 "2023-03-22" "" "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 4284712be..dad46be9d 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-12-24" "" "borg backup tool" +.TH "BORG-BREAK-LOCK" 1 "2023-03-22" "" "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 17ed5059f..4b524b926 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-12-24" "" "borg backup tool" +.TH "BORG-CHECK" 1 "2023-03-22" "" "borg backup tool" .SH NAME borg-check \- Check repository consistency .SH SYNOPSIS diff --git a/docs/man/borg-common.1 b/docs/man/borg-common.1 index 4ea4f97da..38c1c441b 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-12-24" "" "borg backup tool" +.TH "BORG-COMMON" 1 "2023-03-22" "" "borg backup tool" .SH NAME borg-common \- Common options of Borg commands .SH SYNOPSIS diff --git a/docs/man/borg-compact.1 b/docs/man/borg-compact.1 index 5ead9e002..02f78bcfe 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-12-24" "" "borg backup tool" +.TH "BORG-COMPACT" 1 "2023-03-22" "" "borg backup tool" .SH NAME borg-compact \- compact segment files in the repository .SH SYNOPSIS diff --git a/docs/man/borg-compression.1 b/docs/man/borg-compression.1 index 97f75b336..9daf0f98e 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-12-24" "" "borg backup tool" +.TH "BORG-COMPRESSION" 1 "2023-03-22" "" "borg backup tool" .SH NAME borg-compression \- Details regarding compression .SH DESCRIPTION diff --git a/docs/man/borg-config.1 b/docs/man/borg-config.1 index 8067a4109..d2050a0e8 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-12-24" "" "borg backup tool" +.TH "BORG-CONFIG" 1 "2023-03-22" "" "borg backup tool" .SH NAME borg-config \- get, set, and delete values in a repository or cache config file .SH SYNOPSIS diff --git a/docs/man/borg-create.1 b/docs/man/borg-create.1 index 62065f9e3..92bc4d0d0 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-12-24" "" "borg backup tool" +.TH "BORG-CREATE" 1 "2023-03-22" "" "borg backup tool" .SH NAME borg-create \- Create new archive .SH SYNOPSIS diff --git a/docs/man/borg-delete.1 b/docs/man/borg-delete.1 index 6431669ee..0e9fa9101 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-12-24" "" "borg backup tool" +.TH "BORG-DELETE" 1 "2023-03-22" "" "borg backup tool" .SH NAME borg-delete \- Delete an existing repository or archives .SH SYNOPSIS diff --git a/docs/man/borg-diff.1 b/docs/man/borg-diff.1 index 28ca936e1..e3e39bbbc 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-12-24" "" "borg backup tool" +.TH "BORG-DIFF" 1 "2023-03-22" "" "borg backup tool" .SH NAME borg-diff \- Diff contents of two archives .SH SYNOPSIS @@ -81,6 +81,9 @@ Override check of chunker parameters. .B \-\-sort Sort the output lines by file path. .TP +.B \-\-content\-only +Only compare differences in content (exclude metadata differences) +.TP .B \-\-json\-lines Format output as JSON Lines. .UNINDENT diff --git a/docs/man/borg-export-tar.1 b/docs/man/borg-export-tar.1 index 54b48ce5f..90e9b5818 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-12-24" "" "borg backup tool" +.TH "BORG-EXPORT-TAR" 1 "2023-03-22" "" "borg backup tool" .SH NAME borg-export-tar \- Export archive contents as a tarball .SH SYNOPSIS diff --git a/docs/man/borg-extract.1 b/docs/man/borg-extract.1 index 1dc992ddd..a278b56a6 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-12-24" "" "borg backup tool" +.TH "BORG-EXTRACT" 1 "2023-03-22" "" "borg backup tool" .SH NAME borg-extract \- Extract archive contents .SH SYNOPSIS diff --git a/docs/man/borg-import-tar.1 b/docs/man/borg-import-tar.1 index ec4699727..436d98331 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-12-24" "" "borg backup tool" +.TH "BORG-IMPORT-TAR" 1 "2023-03-22" "" "borg backup tool" .SH NAME borg-import-tar \- Create a backup archive from a tarball .SH SYNOPSIS @@ -70,6 +70,10 @@ A \fB\-\-sparse\fP option (as found in borg create) is not supported. .sp import\-tar reads POSIX.1\-1988 (ustar), POSIX.1\-2001 (pax), GNU tar, UNIX V7 tar and SunOS tar with extended attributes. +.sp +To import multiple tarballs into a single archive, they can be simply +concatenated (e.g. using \(dqcat\(dq) into a single file, and imported with an +\fB\-\-ignore\-zeros\fP option to skip through the stop markers between them. .SH OPTIONS .sp See \fIborg\-common(1)\fP for common options of Borg commands. @@ -99,6 +103,9 @@ only display items with the given status characters .TP .B \-\-json output stats as JSON (implies \-\-stats) +.TP +.B \-\-ignore\-zeros +ignore zero\-filled blocks in the input tarball .UNINDENT .SS Archive options .INDENT 0.0 diff --git a/docs/man/borg-info.1 b/docs/man/borg-info.1 index 8932ab009..d6102e0ac 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-12-24" "" "borg backup tool" +.TH "BORG-INFO" 1 "2023-03-22" "" "borg backup tool" .SH NAME borg-info \- Show archive details such as disk space used .SH SYNOPSIS diff --git a/docs/man/borg-init.1 b/docs/man/borg-init.1 index 9d31b2b20..84dae864d 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-12-24" "" "borg backup tool" +.TH "BORG-INIT" 1 "2023-03-22" "" "borg backup tool" .SH NAME borg-init \- Initialize an empty repository .SH SYNOPSIS diff --git a/docs/man/borg-key-change-passphrase.1 b/docs/man/borg-key-change-passphrase.1 index cdd72d818..4195875cd 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-12-24" "" "borg backup tool" +.TH "BORG-KEY-CHANGE-PASSPHRASE" 1 "2023-03-22" "" "borg backup tool" .SH NAME borg-key-change-passphrase \- Change repository key file passphrase .SH SYNOPSIS diff --git a/docs/man/borg-key-export.1 b/docs/man/borg-key-export.1 index f6acad022..c5c83bb09 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-12-24" "" "borg backup tool" +.TH "BORG-KEY-EXPORT" 1 "2023-03-22" "" "borg backup tool" .SH NAME borg-key-export \- Export the repository key for backup .SH SYNOPSIS diff --git a/docs/man/borg-key-import.1 b/docs/man/borg-key-import.1 index d8cb1cf30..96520d76b 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-12-24" "" "borg backup tool" +.TH "BORG-KEY-IMPORT" 1 "2023-03-22" "" "borg backup tool" .SH NAME borg-key-import \- Import the repository key from backup .SH SYNOPSIS diff --git a/docs/man/borg-key-migrate-to-repokey.1 b/docs/man/borg-key-migrate-to-repokey.1 index 72b83278a..dfb9d7b14 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-12-24" "" "borg backup tool" +.TH "BORG-KEY-MIGRATE-TO-REPOKEY" 1 "2023-03-22" "" "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 2a6b87a32..38c8fdcac 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-12-24" "" "borg backup tool" +.TH "BORG-KEY" 1 "2023-03-22" "" "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 9a416df3d..7b5e7f03a 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-12-24" "" "borg backup tool" +.TH "BORG-LIST" 1 "2023-03-22" "" "borg backup tool" .SH NAME borg-list \- List archive or repository contents .SH SYNOPSIS diff --git a/docs/man/borg-mount.1 b/docs/man/borg-mount.1 index 633a2b821..3fc998f53 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-12-24" "" "borg backup tool" +.TH "BORG-MOUNT" 1 "2023-03-22" "" "borg backup tool" .SH NAME borg-mount \- Mount archive or an entire repository as a FUSE filesystem .SH SYNOPSIS @@ -69,16 +69,16 @@ manually. Unlike the \fBuid\fP and \fBgid\fP mount options which affect all file Additional mount options supported by borg: .INDENT 0.0 .IP \(bu 2 -versions: when used with a repository mount, this gives a merged, versioned +\fBversions\fP: when used with a repository mount, this gives a merged, versioned view of the files in the archives. EXPERIMENTAL, layout may change in future. .IP \(bu 2 -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 +\fBallow_damaged_files\fP: by default damaged files (where missing chunks were +replaced with runs of zeros by \fBborg check \-\-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 \(dqdefault_permissions\(dq mount -option is internally enforced by borg. \(dqignore_permissions\(dq can be given to -not enforce \(dqdefault_permissions\(dq. +\fBignore_permissions\fP: for security reasons the \fBdefault_permissions\fP mount +option is internally enforced by borg. \fBignore_permissions\fP can be given to +not enforce \fBdefault_permissions\fP\&. .UNINDENT .sp The BORG_MOUNT_DATA_CACHE_ENTRIES environment variable is meant for advanced users diff --git a/docs/man/borg-patterns.1 b/docs/man/borg-patterns.1 index 1e425819d..e082a59e4 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-12-24" "" "borg backup tool" +.TH "BORG-PATTERNS" 1 "2023-03-22" "" "borg backup tool" .SH NAME borg-patterns \- Details regarding patterns .SH DESCRIPTION diff --git a/docs/man/borg-placeholders.1 b/docs/man/borg-placeholders.1 index 1e1827269..90c072a3a 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-12-24" "" "borg backup tool" +.TH "BORG-PLACEHOLDERS" 1 "2023-03-22" "" "borg backup tool" .SH NAME borg-placeholders \- Details regarding placeholders .SH DESCRIPTION diff --git a/docs/man/borg-prune.1 b/docs/man/borg-prune.1 index ddcfa61c9..0785d3d1c 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-12-24" "" "borg backup tool" +.TH "BORG-PRUNE" 1 "2023-03-22" "" "borg backup tool" .SH NAME borg-prune \- Prune repository archives according to specified rules .SH SYNOPSIS diff --git a/docs/man/borg-recreate.1 b/docs/man/borg-recreate.1 index 6302b9493..5957d9228 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-12-24" "" "borg backup tool" +.TH "BORG-RECREATE" 1 "2023-03-22" "" "borg backup tool" .SH NAME borg-recreate \- Re-create archives .SH SYNOPSIS @@ -158,7 +158,7 @@ select compression algorithm, see the output of the \(dqborg help compression\(d 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 +rechunk using given chunker parameters (ALGO, CHUNK_MIN_EXP, CHUNK_MAX_EXP, HASH_MASK_BITS, HASH_WINDOW_SIZE) or \fIdefault\fP to use the chunker defaults. default: do not rechunk .UNINDENT .SH EXAMPLES .INDENT 0.0 diff --git a/docs/man/borg-rename.1 b/docs/man/borg-rename.1 index c18a2c141..c6fd9096d 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-12-24" "" "borg backup tool" +.TH "BORG-RENAME" 1 "2023-03-22" "" "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 83c5219db..687315e46 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-12-24" "" "borg backup tool" +.TH "BORG-SERVE" 1 "2023-03-22" "" "borg backup tool" .SH NAME borg-serve \- Start in server mode. This command is usually not used manually. .SH SYNOPSIS diff --git a/docs/man/borg-umount.1 b/docs/man/borg-umount.1 index b4d8aac5b..d122a35e9 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-12-24" "" "borg backup tool" +.TH "BORG-UMOUNT" 1 "2023-03-22" "" "borg backup tool" .SH NAME borg-umount \- un-mount the FUSE filesystem .SH SYNOPSIS diff --git a/docs/man/borg-upgrade.1 b/docs/man/borg-upgrade.1 index bb11794c1..23748c994 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-12-24" "" "borg backup tool" +.TH "BORG-UPGRADE" 1 "2023-03-22" "" "borg backup tool" .SH NAME borg-upgrade \- upgrade a repository from a previous version .SH SYNOPSIS diff --git a/docs/man/borg-with-lock.1 b/docs/man/borg-with-lock.1 index f1b440b87..6c9914c9f 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-12-24" "" "borg backup tool" +.TH "BORG-WITH-LOCK" 1 "2023-03-22" "" "borg backup tool" .SH NAME borg-with-lock \- run a user specified command with the repository lock held .SH SYNOPSIS diff --git a/docs/man/borg.1 b/docs/man/borg.1 index 22517639a..a499c49b4 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-12-24" "" "borg backup tool" +.TH "BORG" 1 "2023-03-22" "" "borg backup tool" .SH NAME borg \- deduplicating and encrypting backup tool .SH SYNOPSIS @@ -564,7 +564,24 @@ Defaults to \fB$BORG_CONFIG_DIR/keys\fP\&. This directory contains keys for encrypted repositories. .TP .B BORG_KEY_FILE -When set, use the given filename as repository key file. +When set, use the given path as repository key file. Please note that this is only +for rather special applications that externally fully manage the key files: +.INDENT 7.0 +.IP \(bu 2 +this setting only applies to the keyfile modes (not to the repokey modes). +.IP \(bu 2 +using a full, absolute path to the key file is recommended. +.IP \(bu 2 +all directories in the given path must exist. +.IP \(bu 2 +this setting forces borg to use the key file at the given location. +.IP \(bu 2 +the key file must either exist (for most commands) or will be created (\fBborg rcreate\fP). +.IP \(bu 2 +you need to give a different path for different repositories. +.IP \(bu 2 +you need to point to the correct key file matching the repository the command will operate on. +.UNINDENT .TP .B TMPDIR This is where temporary files are stored (might need a lot of temporary space for some @@ -581,10 +598,6 @@ Adds given OpenSSL header file directory to the default locations (setup.py). Adds given prefix directory to the default locations. If a \(aqinclude/lz4.h\(aq is found Borg will be linked against the system liblz4 instead of a bundled implementation. (setup.py) .TP -.B BORG_LIBB2_PREFIX -Adds given prefix directory to the default locations. If a \(aqinclude/blake2.h\(aq is found Borg -will be linked against the system libb2 instead of a bundled implementation. (setup.py) -.TP .B BORG_LIBZSTD_PREFIX Adds given prefix directory to the default locations. If a \(aqinclude/zstd.h\(aq is found Borg will be linked against the system libzstd instead of a bundled implementation. (setup.py) diff --git a/docs/man/borgfs.1 b/docs/man/borgfs.1 index d6476fc22..57c477737 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-12-24" "" "borg backup tool" +.TH "BORGFS" 1 "2023-03-22" "" "borg backup tool" .SH NAME borgfs \- Mount archive or an entire repository as a FUSE filesystem .SH SYNOPSIS @@ -69,16 +69,16 @@ manually. Unlike the \fBuid\fP and \fBgid\fP mount options which affect all file Additional mount options supported by borg: .INDENT 0.0 .IP \(bu 2 -versions: when used with a repository mount, this gives a merged, versioned +\fBversions\fP: when used with a repository mount, this gives a merged, versioned view of the files in the archives. EXPERIMENTAL, layout may change in future. .IP \(bu 2 -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 +\fBallow_damaged_files\fP: by default damaged files (where missing chunks were +replaced with runs of zeros by \fBborg check \-\-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 \(dqdefault_permissions\(dq mount -option is internally enforced by borg. \(dqignore_permissions\(dq can be given to -not enforce \(dqdefault_permissions\(dq. +\fBignore_permissions\fP: for security reasons the \fBdefault_permissions\fP mount +option is internally enforced by borg. \fBignore_permissions\fP can be given to +not enforce \fBdefault_permissions\fP\&. .UNINDENT .sp The BORG_MOUNT_DATA_CACHE_ENTRIES environment variable is meant for advanced users diff --git a/docs/usage/diff.rst.inc b/docs/usage/diff.rst.inc index df5dcc5e1..d527f0c16 100644 --- a/docs/usage/diff.rst.inc +++ b/docs/usage/diff.rst.inc @@ -31,6 +31,8 @@ borg diff +-------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------+ | | ``--sort`` | Sort the output lines by file path. | +-------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------+ + | | ``--content-only`` | Only compare differences in content (exclude metadata differences) | + +-------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------+ | | ``--json-lines`` | Format output as JSON Lines. | +-------------------------------------------------------+---------------------------------------+-----------------------------------------------------------------------+ | .. class:: borg-common-opt-ref | @@ -71,6 +73,7 @@ borg diff --numeric-ids only consider numeric user and group identifiers --same-chunker-params Override check of chunker parameters. --sort Sort the output lines by file path. + --content-only Only compare differences in content (exclude metadata differences) --json-lines Format output as JSON Lines. diff --git a/docs/usage/import-tar.rst.inc b/docs/usage/import-tar.rst.inc index 74c94356e..0749627cd 100644 --- a/docs/usage/import-tar.rst.inc +++ b/docs/usage/import-tar.rst.inc @@ -31,6 +31,8 @@ borg import-tar +-------------------------------------------------------+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+ | | ``--json`` | output stats as JSON (implies --stats) | +-------------------------------------------------------+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+ + | | ``--ignore-zeros`` | ignore zero-filled blocks in the input tarball | + +-------------------------------------------------------+---------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------+ | .. class:: borg-common-opt-ref | | | | :ref:`common_options` | @@ -70,6 +72,7 @@ borg import-tar --list output verbose list of items (files, dirs, ...) --filter STATUSCHARS only display items with the given status characters --json output stats as JSON (implies --stats) + --ignore-zeros ignore zero-filled blocks in the input tarball :ref:`common_options` @@ -114,4 +117,8 @@ otherwise supported by Borg. A ``--sparse`` option (as found in borg create) is not supported. import-tar reads POSIX.1-1988 (ustar), POSIX.1-2001 (pax), GNU tar, UNIX V7 tar -and SunOS tar with extended attributes. \ No newline at end of file +and SunOS tar with extended attributes. + +To import multiple tarballs into a single archive, they can be simply +concatenated (e.g. using "cat") into a single file, and imported with an +``--ignore-zeros`` option to skip through the stop markers between them. \ No newline at end of file diff --git a/docs/usage/mount.rst.inc b/docs/usage/mount.rst.inc index dfb937c91..e72b758cc 100644 --- a/docs/usage/mount.rst.inc +++ b/docs/usage/mount.rst.inc @@ -143,14 +143,14 @@ manually. Unlike the ``uid`` and ``gid`` mount options which affect all files, Additional mount options supported by borg: -- versions: when used with a repository mount, this gives a merged, versioned +- ``versions``: when used with a repository mount, this gives a merged, versioned view of the files in the archives. EXPERIMENTAL, layout may change in future. -- allow_damaged_files: by default damaged files (where missing chunks were - replaced with runs of zeros by borg check ``--repair``) are not readable and +- ``allow_damaged_files``: by default damaged files (where missing chunks were + replaced with runs of zeros by ``borg check --repair``) are not readable and return EIO (I/O error). Set this option to read such files. -- 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 ``default_permissions`` mount + option is internally enforced by borg. ``ignore_permissions`` can be given to + not enforce ``default_permissions``. The BORG_MOUNT_DATA_CACHE_ENTRIES environment variable is meant for advanced users to tweak the performance. It sets the number of cached data chunks; additional diff --git a/docs/usage/recreate.rst.inc b/docs/usage/recreate.rst.inc index 31e55cfde..e55edc032 100644 --- a/docs/usage/recreate.rst.inc +++ b/docs/usage/recreate.rst.inc @@ -63,7 +63,7 @@ borg recreate +-------------------------------------------------------+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | | ``--recompress MODE`` | recompress data chunks according to `MODE` and ``--compression``. Possible modes are `if-different`: recompress if current compression is with a different compression algorithm (the level is not considered); `always`: recompress even if current compression is with the same compression algorithm (use this to change the compression level); and `never`: do not recompress (use this option to explicitly prevent recompression). If no MODE is given, `if-different` will be used. Not passing --recompress is equivalent to "--recompress never". | +-------------------------------------------------------+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | | ``--chunker-params PARAMS`` | specify the chunker parameters (ALGO, CHUNK_MIN_EXP, CHUNK_MAX_EXP, HASH_MASK_BITS, HASH_WINDOW_SIZE) or `default` to use the current defaults. default: buzhash,19,23,21,4095 | + | | ``--chunker-params PARAMS`` | rechunk using given chunker parameters (ALGO, CHUNK_MIN_EXP, CHUNK_MAX_EXP, HASH_MASK_BITS, HASH_WINDOW_SIZE) or `default` to use the chunker defaults. default: do not rechunk | +-------------------------------------------------------+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. raw:: html @@ -109,7 +109,7 @@ borg recreate --timestamp TIMESTAMP manually specify the archive creation date/time (UTC, yyyy-mm-ddThh:mm:ss format). alternatively, give a reference file/directory. -C COMPRESSION, --compression COMPRESSION select compression algorithm, see the output of the "borg help compression" command for details. --recompress MODE recompress data chunks according to `MODE` and ``--compression``. Possible modes are `if-different`: recompress if current compression is with a different compression algorithm (the level is not considered); `always`: recompress even if current compression is with the same compression algorithm (use this to change the compression level); and `never`: do not recompress (use this option to explicitly prevent recompression). If no MODE is given, `if-different` will be used. Not passing --recompress is equivalent to "--recompress never". - --chunker-params PARAMS specify the chunker parameters (ALGO, CHUNK_MIN_EXP, CHUNK_MAX_EXP, HASH_MASK_BITS, HASH_WINDOW_SIZE) or `default` to use the current defaults. default: buzhash,19,23,21,4095 + --chunker-params PARAMS rechunk using given chunker parameters (ALGO, CHUNK_MIN_EXP, CHUNK_MAX_EXP, HASH_MASK_BITS, HASH_WINDOW_SIZE) or `default` to use the chunker defaults. default: do not rechunk Description