Browse Source

Merge pull request #4342 from ThomasWaldmann/rel119

Release 1.1.9
TW 6 years ago
parent
commit
90d0589a66

+ 1 - 1
LICENSE

@@ -1,4 +1,4 @@
-Copyright (C) 2015-2018 The Borg Collective (see AUTHORS file)
+Copyright (C) 2015-2019 The Borg Collective (see AUTHORS file)
 Copyright (C) 2010-2014 Jonas Borgström <jonas@borgstrom.se>
 Copyright (C) 2010-2014 Jonas Borgström <jonas@borgstrom.se>
 All rights reserved.
 All rights reserved.
 
 

+ 2 - 2
docs/changes.rst

@@ -171,8 +171,8 @@ The best check that everything is ok is to run a dry-run extraction::
 Changelog
 Changelog
 =========
 =========
 
 
-Version 1.1.9 (not released yet)
---------------------------------
+Version 1.1.9 (2019-02-10)
+--------------------------
 
 
 Compatibility notes:
 Compatibility notes:
 
 

+ 1 - 1
docs/conf.py

@@ -42,7 +42,7 @@ master_doc = 'index'
 
 
 # General information about the project.
 # General information about the project.
 project = 'Borg - Deduplicating Archiver'
 project = 'Borg - Deduplicating Archiver'
-copyright = u'2010-2014 Jonas Borgström, 2015-2018 The Borg Collective (see AUTHORS file)'
+copyright = u'2010-2014 Jonas Borgström, 2015-2019 The Borg Collective (see AUTHORS file)'
 
 
 # The version info for the project you're documenting, acts as replacement for
 # The version info for the project you're documenting, acts as replacement for
 # |version| and |release|, also used in various other places throughout the
 # |version| and |release|, also used in various other places throughout the

+ 1 - 1
docs/man/borg-benchmark-crud.1

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .\" Man page generated from reStructuredText.
 .
 .
-.TH BORG-BENCHMARK-CRUD 1 "2018-12-08" "" "borg backup tool"
+.TH BORG-BENCHMARK-CRUD 1 "2019-02-10" "" "borg backup tool"
 .SH NAME
 .SH NAME
 borg-benchmark-crud \- Benchmark Create, Read, Update, Delete for archives.
 borg-benchmark-crud \- Benchmark Create, Read, Update, Delete for archives.
 .
 .

+ 1 - 1
docs/man/borg-benchmark.1

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .\" Man page generated from reStructuredText.
 .
 .
-.TH BORG-BENCHMARK 1 "2018-12-08" "" "borg backup tool"
+.TH BORG-BENCHMARK 1 "2019-02-10" "" "borg backup tool"
 .SH NAME
 .SH NAME
 borg-benchmark \- benchmark command
 borg-benchmark \- benchmark command
 .
 .

+ 1 - 1
docs/man/borg-break-lock.1

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .\" Man page generated from reStructuredText.
 .
 .
-.TH BORG-BREAK-LOCK 1 "2018-12-08" "" "borg backup tool"
+.TH BORG-BREAK-LOCK 1 "2019-02-10" "" "borg backup tool"
 .SH NAME
 .SH NAME
 borg-break-lock \- Break the repository lock (e.g. in case it was left by a dead borg.
 borg-break-lock \- Break the repository lock (e.g. in case it was left by a dead borg.
 .
 .

+ 1 - 1
docs/man/borg-change-passphrase.1

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .\" Man page generated from reStructuredText.
 .
 .
-.TH BORG-CHANGE-PASSPHRASE 1 "2018-12-08" "" "borg backup tool"
+.TH BORG-CHANGE-PASSPHRASE 1 "2019-02-10" "" "borg backup tool"
 .SH NAME
 .SH NAME
 borg-change-passphrase \- Change repository key file passphrase
 borg-change-passphrase \- Change repository key file passphrase
 .
 .

+ 1 - 1
docs/man/borg-check.1

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .\" Man page generated from reStructuredText.
 .
 .
-.TH BORG-CHECK 1 "2018-12-08" "" "borg backup tool"
+.TH BORG-CHECK 1 "2019-02-10" "" "borg backup tool"
 .SH NAME
 .SH NAME
 borg-check \- Check repository consistency
 borg-check \- Check repository consistency
 .
 .

+ 4 - 1
docs/man/borg-common.1

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .\" Man page generated from reStructuredText.
 .
 .
-.TH BORG-COMMON 1 "2018-12-08" "" "borg backup tool"
+.TH BORG-COMMON 1 "2019-02-10" "" "borg backup tool"
 .SH NAME
 .SH NAME
 borg-common \- Common options of Borg commands
 borg-common \- Common options of Borg commands
 .
 .
@@ -83,6 +83,9 @@ treat part files like normal files (e.g. to list/extract them)
 .TP
 .TP
 .BI \-\-debug\-profile \ FILE
 .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 ".pyprof".
+.TP
+.BI \-\-rsh \ RSH
+Use this command to connect to the \(aqborg serve\(aq process (default: \(aqssh\(aq)
 .UNINDENT
 .UNINDENT
 .SH SEE ALSO
 .SH SEE ALSO
 .sp
 .sp

+ 1 - 1
docs/man/borg-compression.1

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .\" Man page generated from reStructuredText.
 .
 .
-.TH BORG-COMPRESSION 1 "2018-12-08" "" "borg backup tool"
+.TH BORG-COMPRESSION 1 "2019-02-10" "" "borg backup tool"
 .SH NAME
 .SH NAME
 borg-compression \- Details regarding compression
 borg-compression \- Details regarding compression
 .
 .

+ 1 - 1
docs/man/borg-config.1

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .\" Man page generated from reStructuredText.
 .
 .
-.TH BORG-CONFIG 1 "2018-12-08" "" "borg backup tool"
+.TH BORG-CONFIG 1 "2019-02-10" "" "borg backup tool"
 .SH NAME
 .SH NAME
 borg-config \- get, set, and delete values in a repository or cache config file
 borg-config \- get, set, and delete values in a repository or cache config file
 .
 .

+ 1 - 1
docs/man/borg-create.1

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .\" Man page generated from reStructuredText.
 .
 .
-.TH BORG-CREATE 1 "2018-12-08" "" "borg backup tool"
+.TH BORG-CREATE 1 "2019-02-10" "" "borg backup tool"
 .SH NAME
 .SH NAME
 borg-create \- Create new archive
 borg-create \- Create new archive
 .
 .

+ 1 - 1
docs/man/borg-delete.1

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .\" Man page generated from reStructuredText.
 .
 .
-.TH BORG-DELETE 1 "2018-12-08" "" "borg backup tool"
+.TH BORG-DELETE 1 "2019-02-10" "" "borg backup tool"
 .SH NAME
 .SH NAME
 borg-delete \- Delete an existing repository or archives
 borg-delete \- Delete an existing repository or archives
 .
 .

+ 1 - 1
docs/man/borg-diff.1

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .\" Man page generated from reStructuredText.
 .
 .
-.TH BORG-DIFF 1 "2018-12-08" "" "borg backup tool"
+.TH BORG-DIFF 1 "2019-02-10" "" "borg backup tool"
 .SH NAME
 .SH NAME
 borg-diff \- Diff contents of two archives
 borg-diff \- Diff contents of two archives
 .
 .

+ 1 - 1
docs/man/borg-export-tar.1

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .\" Man page generated from reStructuredText.
 .
 .
-.TH BORG-EXPORT-TAR 1 "2018-12-08" "" "borg backup tool"
+.TH BORG-EXPORT-TAR 1 "2019-02-10" "" "borg backup tool"
 .SH NAME
 .SH NAME
 borg-export-tar \- Export archive contents as a tarball
 borg-export-tar \- Export archive contents as a tarball
 .
 .

+ 1 - 1
docs/man/borg-extract.1

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .\" Man page generated from reStructuredText.
 .
 .
-.TH BORG-EXTRACT 1 "2018-12-08" "" "borg backup tool"
+.TH BORG-EXTRACT 1 "2019-02-10" "" "borg backup tool"
 .SH NAME
 .SH NAME
 borg-extract \- Extract archive contents
 borg-extract \- Extract archive contents
 .
 .

+ 1 - 1
docs/man/borg-info.1

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .\" Man page generated from reStructuredText.
 .
 .
-.TH BORG-INFO 1 "2018-12-08" "" "borg backup tool"
+.TH BORG-INFO 1 "2019-02-10" "" "borg backup tool"
 .SH NAME
 .SH NAME
 borg-info \- Show archive details such as disk space used
 borg-info \- Show archive details such as disk space used
 .
 .

+ 4 - 1
docs/man/borg-init.1

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .\" Man page generated from reStructuredText.
 .
 .
-.TH BORG-INIT 1 "2018-12-08" "" "borg backup tool"
+.TH BORG-INIT 1 "2019-02-10" "" "borg backup tool"
 .SH NAME
 .SH NAME
 borg-init \- Initialize an empty repository
 borg-init \- Initialize an empty repository
 .
 .
@@ -186,6 +186,9 @@ create an append\-only mode repository
 .TP
 .TP
 .BI \-\-storage\-quota \ QUOTA
 .BI \-\-storage\-quota \ QUOTA
 Set storage quota of the new repository (e.g. 5G, 1.5T). Default: no quota.
 Set storage quota of the new repository (e.g. 5G, 1.5T). Default: no quota.
+.TP
+.B \-\-make\-parent\-dirs
+create the parent directories of the repository directory, if they are missing.
 .UNINDENT
 .UNINDENT
 .SH EXAMPLES
 .SH EXAMPLES
 .INDENT 0.0
 .INDENT 0.0

+ 1 - 1
docs/man/borg-key-change-passphrase.1

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .\" Man page generated from reStructuredText.
 .
 .
-.TH BORG-KEY-CHANGE-PASSPHRASE 1 "2018-12-08" "" "borg backup tool"
+.TH BORG-KEY-CHANGE-PASSPHRASE 1 "2019-02-10" "" "borg backup tool"
 .SH NAME
 .SH NAME
 borg-key-change-passphrase \- Change repository key file passphrase
 borg-key-change-passphrase \- Change repository key file passphrase
 .
 .

+ 1 - 1
docs/man/borg-key-export.1

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .\" Man page generated from reStructuredText.
 .
 .
-.TH BORG-KEY-EXPORT 1 "2018-12-08" "" "borg backup tool"
+.TH BORG-KEY-EXPORT 1 "2019-02-10" "" "borg backup tool"
 .SH NAME
 .SH NAME
 borg-key-export \- Export the repository key for backup
 borg-key-export \- Export the repository key for backup
 .
 .

+ 1 - 1
docs/man/borg-key-import.1

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .\" Man page generated from reStructuredText.
 .
 .
-.TH BORG-KEY-IMPORT 1 "2018-12-08" "" "borg backup tool"
+.TH BORG-KEY-IMPORT 1 "2019-02-10" "" "borg backup tool"
 .SH NAME
 .SH NAME
 borg-key-import \- Import the repository key from backup
 borg-key-import \- Import the repository key from backup
 .
 .

+ 1 - 1
docs/man/borg-key-migrate-to-repokey.1

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .\" Man page generated from reStructuredText.
 .
 .
-.TH BORG-KEY-MIGRATE-TO-REPOKEY 1 "2018-12-08" "" "borg backup tool"
+.TH BORG-KEY-MIGRATE-TO-REPOKEY 1 "2019-02-10" "" "borg backup tool"
 .SH NAME
 .SH NAME
 borg-key-migrate-to-repokey \- Migrate passphrase -> repokey
 borg-key-migrate-to-repokey \- Migrate passphrase -> repokey
 .
 .

+ 1 - 1
docs/man/borg-key.1

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .\" Man page generated from reStructuredText.
 .
 .
-.TH BORG-KEY 1 "2018-12-08" "" "borg backup tool"
+.TH BORG-KEY 1 "2019-02-10" "" "borg backup tool"
 .SH NAME
 .SH NAME
 borg-key \- Manage a keyfile or repokey of a repository
 borg-key \- Manage a keyfile or repokey of a repository
 .
 .

+ 1 - 1
docs/man/borg-list.1

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .\" Man page generated from reStructuredText.
 .
 .
-.TH BORG-LIST 1 "2018-12-08" "" "borg backup tool"
+.TH BORG-LIST 1 "2019-02-10" "" "borg backup tool"
 .SH NAME
 .SH NAME
 borg-list \- List archive or repository contents
 borg-list \- List archive or repository contents
 .
 .

+ 8 - 3
docs/man/borg-mount.1

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .\" Man page generated from reStructuredText.
 .
 .
-.TH BORG-MOUNT 1 "2018-12-08" "" "borg backup tool"
+.TH BORG-MOUNT 1 "2019-02-10" "" "borg backup tool"
 .SH NAME
 .SH NAME
 borg-mount \- Mount archive or an entire repository as a FUSE filesystem
 borg-mount \- Mount archive or an entire repository as a FUSE filesystem
 .
 .
@@ -47,8 +47,9 @@ used in fstab entries:
 To allow a regular user to use fstab entries, add the \fBuser\fP option:
 To allow a regular user to use fstab entries, add the \fBuser\fP option:
 \fB/path/to/repo /mnt/point fuse.borgfs defaults,noauto,user 0 0\fP
 \fB/path/to/repo /mnt/point fuse.borgfs defaults,noauto,user 0 0\fP
 .sp
 .sp
-For mount options, see the fuse(8) manual page. Additional mount options
-supported by borg:
+For FUSE configuration and mount options, see the mount.fuse(8) manual page.
+.sp
+Additional mount options supported by borg:
 .INDENT 0.0
 .INDENT 0.0
 .IP \(bu 2
 .IP \(bu 2
 versions: when used with a repository mount, this gives a merged, versioned
 versions: when used with a repository mount, this gives a merged, versioned
@@ -57,6 +58,10 @@ view of the files in the archives. EXPERIMENTAL, layout may change in future.
 allow_damaged_files: by default damaged files (where missing chunks were
 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
 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.
 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".
 .UNINDENT
 .UNINDENT
 .sp
 .sp
 The BORG_MOUNT_DATA_CACHE_ENTRIES environment variable is meant for advanced users
 The BORG_MOUNT_DATA_CACHE_ENTRIES environment variable is meant for advanced users

+ 3 - 3
docs/man/borg-patterns.1

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .\" Man page generated from reStructuredText.
 .
 .
-.TH BORG-PATTERNS 1 "2018-12-08" "" "borg backup tool"
+.TH BORG-PATTERNS 1 "2019-02-10" "" "borg backup tool"
 .SH NAME
 .SH NAME
 borg-patterns \- Details regarding patterns
 borg-patterns \- Details regarding patterns
 .
 .
@@ -58,7 +58,7 @@ These patterns use a variant of shell pattern syntax, with \(aq*\(aq matching
 any number of characters, \(aq?\(aq matching any single character, \(aq[...]\(aq
 any number of characters, \(aq?\(aq matching any single character, \(aq[...]\(aq
 matching any single character specified, including ranges, and \(aq[!...]\(aq
 matching any single character specified, including ranges, and \(aq[!...]\(aq
 matching any character not specified. For the purpose of these patterns,
 matching any character not specified. For the purpose of these patterns,
-the path separator (\(aq\(aq for Windows and \(aq/\(aq on other systems) is not
+the path separator (backslash for Windows and \(aq/\(aq on other systems) is not
 treated specially. Wrap meta\-characters in brackets for a literal
 treated specially. Wrap meta\-characters in brackets for a literal
 match (i.e. \fI[?]\fP to match the literal character \fI?\fP). For a path
 match (i.e. \fI[?]\fP to match the literal character \fI?\fP). For a path
 to match a pattern, the full path must match, or it must match
 to match a pattern, the full path must match, or it must match
@@ -79,7 +79,7 @@ Regular expressions similar to those found in Perl are supported. Unlike
 shell patterns regular expressions are not required to match the full
 shell patterns regular expressions are not required to match the full
 path and any substring match is sufficient. It is strongly recommended to
 path and any substring match is sufficient. It is strongly recommended to
 anchor patterns to the start (\(aq^\(aq), to the end (\(aq$\(aq) or both. Path
 anchor patterns to the start (\(aq^\(aq), to the end (\(aq$\(aq) or both. Path
-separators (\(aq\(aq for Windows and \(aq/\(aq on other systems) in paths are
+separators (backslash for Windows and \(aq/\(aq on other systems) in paths are
 always normalized to a forward slash (\(aq/\(aq) before applying a pattern. The
 always normalized to a forward slash (\(aq/\(aq) before applying a pattern. The
 regular expression syntax is described in the \fI\%Python documentation for
 regular expression syntax is described in the \fI\%Python documentation for
 the re module\fP\&.
 the re module\fP\&.

+ 1 - 1
docs/man/borg-placeholders.1

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .\" Man page generated from reStructuredText.
 .
 .
-.TH BORG-PLACEHOLDERS 1 "2018-12-08" "" "borg backup tool"
+.TH BORG-PLACEHOLDERS 1 "2019-02-10" "" "borg backup tool"
 .SH NAME
 .SH NAME
 borg-placeholders \- Details regarding placeholders
 borg-placeholders \- Details regarding placeholders
 .
 .

+ 1 - 1
docs/man/borg-prune.1

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .\" Man page generated from reStructuredText.
 .
 .
-.TH BORG-PRUNE 1 "2018-12-08" "" "borg backup tool"
+.TH BORG-PRUNE 1 "2019-02-10" "" "borg backup tool"
 .SH NAME
 .SH NAME
 borg-prune \- Prune repository archives according to specified rules
 borg-prune \- Prune repository archives according to specified rules
 .
 .

+ 1 - 1
docs/man/borg-recreate.1

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .\" Man page generated from reStructuredText.
 .
 .
-.TH BORG-RECREATE 1 "2018-12-08" "" "borg backup tool"
+.TH BORG-RECREATE 1 "2019-02-10" "" "borg backup tool"
 .SH NAME
 .SH NAME
 borg-recreate \- Re-create archives
 borg-recreate \- Re-create archives
 .
 .

+ 1 - 1
docs/man/borg-rename.1

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .\" Man page generated from reStructuredText.
 .
 .
-.TH BORG-RENAME 1 "2018-12-08" "" "borg backup tool"
+.TH BORG-RENAME 1 "2019-02-10" "" "borg backup tool"
 .SH NAME
 .SH NAME
 borg-rename \- Rename an existing archive
 borg-rename \- Rename an existing archive
 .
 .

+ 1 - 1
docs/man/borg-serve.1

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .\" Man page generated from reStructuredText.
 .
 .
-.TH BORG-SERVE 1 "2018-12-08" "" "borg backup tool"
+.TH BORG-SERVE 1 "2019-02-10" "" "borg backup tool"
 .SH NAME
 .SH NAME
 borg-serve \- Start in server mode. This command is usually not used manually.
 borg-serve \- Start in server mode. This command is usually not used manually.
 .
 .

+ 1 - 1
docs/man/borg-umount.1

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .\" Man page generated from reStructuredText.
 .
 .
-.TH BORG-UMOUNT 1 "2018-12-08" "" "borg backup tool"
+.TH BORG-UMOUNT 1 "2019-02-10" "" "borg backup tool"
 .SH NAME
 .SH NAME
 borg-umount \- un-mount the FUSE filesystem
 borg-umount \- un-mount the FUSE filesystem
 .
 .

+ 1 - 1
docs/man/borg-upgrade.1

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .\" Man page generated from reStructuredText.
 .
 .
-.TH BORG-UPGRADE 1 "2018-12-08" "" "borg backup tool"
+.TH BORG-UPGRADE 1 "2019-02-10" "" "borg backup tool"
 .SH NAME
 .SH NAME
 borg-upgrade \- upgrade a repository from a previous version
 borg-upgrade \- upgrade a repository from a previous version
 .
 .

+ 1 - 1
docs/man/borg-with-lock.1

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .\" Man page generated from reStructuredText.
 .
 .
-.TH BORG-WITH-LOCK 1 "2018-12-08" "" "borg backup tool"
+.TH BORG-WITH-LOCK 1 "2019-02-10" "" "borg backup tool"
 .SH NAME
 .SH NAME
 borg-with-lock \- run a user specified command with the repository lock held
 borg-with-lock \- run a user specified command with the repository lock held
 .
 .

+ 3 - 3
docs/man/borg.1

@@ -394,7 +394,7 @@ When set, use the standard output of the command (trailing newlines are stripped
 passphrase question for encrypted repositories.
 passphrase question for encrypted repositories.
 It is used when a passphrase is needed to access an encrypted repo as well as when a new
 It is used when a passphrase is needed to access an encrypted repo as well as when a new
 passphrase should be initially set when initializing an encrypted repo. Note that the command
 passphrase should be initially set when initializing an encrypted repo. Note that the command
-is executed without a shell. So variables, like \fB$HOME\fP\ will work, but \fB~\fP\ won't.
+is executed without a shell. So variables, like \fB$HOME\fP will work, but \fB~\fP won\(aqt.
 If BORG_PASSPHRASE is also set, it takes precedence.
 If BORG_PASSPHRASE is also set, it takes precedence.
 See also BORG_NEW_PASSPHRASE.
 See also BORG_NEW_PASSPHRASE.
 .TP
 .TP
@@ -433,8 +433,8 @@ When set, use the given filename as \fI\%INI\fP\-style logging configuration.
 .TP
 .TP
 .B BORG_RSH
 .B BORG_RSH
 When set, use this command instead of \fBssh\fP\&. This can be used to specify ssh options, such as
 When set, use this command instead of \fBssh\fP\&. This can be used to specify ssh options, such as
-a custom identity file \fBssh \-i /path/to/private/key\fP\&. See \fBman ssh\fP for other options.
-Using the \fB\-\-rsh CMD\fP commandline option overrides the environment variable.
+a custom identity file \fBssh \-i /path/to/private/key\fP\&. See \fBman ssh\fP for other options. Using
+the \fB\-\-rsh CMD\fP commandline option overrides the environment variable.
 .TP
 .TP
 .B BORG_REMOTE_PATH
 .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 "borg" if unset).

+ 8 - 3
docs/man/borgfs.1

@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .\" Man page generated from reStructuredText.
 .
 .
-.TH BORGFS 1 "2018-12-08" "" "borg backup tool"
+.TH BORGFS 1 "2019-02-10" "" "borg backup tool"
 .SH NAME
 .SH NAME
 borgfs \- Mount archive or an entire repository as a FUSE filesystem
 borgfs \- Mount archive or an entire repository as a FUSE filesystem
 .
 .
@@ -47,8 +47,9 @@ used in fstab entries:
 To allow a regular user to use fstab entries, add the \fBuser\fP option:
 To allow a regular user to use fstab entries, add the \fBuser\fP option:
 \fB/path/to/repo /mnt/point fuse.borgfs defaults,noauto,user 0 0\fP
 \fB/path/to/repo /mnt/point fuse.borgfs defaults,noauto,user 0 0\fP
 .sp
 .sp
-For mount options, see the fuse(8) manual page. Additional mount options
-supported by borg:
+For FUSE configuration and mount options, see the mount.fuse(8) manual page.
+.sp
+Additional mount options supported by borg:
 .INDENT 0.0
 .INDENT 0.0
 .IP \(bu 2
 .IP \(bu 2
 versions: when used with a repository mount, this gives a merged, versioned
 versions: when used with a repository mount, this gives a merged, versioned
@@ -57,6 +58,10 @@ view of the files in the archives. EXPERIMENTAL, layout may change in future.
 allow_damaged_files: by default damaged files (where missing chunks were
 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
 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.
 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".
 .UNINDENT
 .UNINDENT
 .sp
 .sp
 The BORG_MOUNT_DATA_CACHE_ENTRIES environment variable is meant for advanced users
 The BORG_MOUNT_DATA_CACHE_ENTRIES environment variable is meant for advanced users

+ 1 - 0
docs/usage/common-options.rst.inc

@@ -15,3 +15,4 @@
 --remote-ratelimit RATE    set remote network upload rate limit in kiByte/s (default: 0=unlimited)
 --remote-ratelimit RATE    set remote network upload rate limit in kiByte/s (default: 0=unlimited)
 --consider-part-files    treat part files like normal files (e.g. to list/extract them)
 --consider-part-files    treat part files like normal files (e.g. to list/extract them)
 --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".
 --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".
+--rsh RSH          Use this command to connect to the 'borg serve' process (default: 'ssh')

+ 2 - 2
docs/usage/help.rst.inc

@@ -31,7 +31,7 @@ two alphanumeric characters followed by a colon (i.e. `aa:something/*`).
     any number of characters, '?' matching any single character, '[...]'
     any number of characters, '?' matching any single character, '[...]'
     matching any single character specified, including ranges, and '[!...]'
     matching any single character specified, including ranges, and '[!...]'
     matching any character not specified. For the purpose of these patterns,
     matching any character not specified. For the purpose of these patterns,
-    the path separator ('\' for Windows and '/' on other systems) is not
+    the path separator (backslash for Windows and '/' on other systems) is not
     treated specially. Wrap meta-characters in brackets for a literal
     treated specially. Wrap meta-characters in brackets for a literal
     match (i.e. `[?]` to match the literal character `?`). For a path
     match (i.e. `[?]` to match the literal character `?`). For a path
     to match a pattern, the full path must match, or it must match
     to match a pattern, the full path must match, or it must match
@@ -52,7 +52,7 @@ Regular expressions, selector `re:`
     shell patterns regular expressions are not required to match the full
     shell patterns regular expressions are not required to match the full
     path and any substring match is sufficient. It is strongly recommended to
     path and any substring match is sufficient. It is strongly recommended to
     anchor patterns to the start ('^'), to the end ('$') or both. Path
     anchor patterns to the start ('^'), to the end ('$') or both. Path
-    separators ('\' for Windows and '/' on other systems) in paths are
+    separators (backslash for Windows and '/' on other systems) in paths are
     always normalized to a forward slash ('/') before applying a pattern. The
     always normalized to a forward slash ('/') before applying a pattern. The
     regular expression syntax is described in the `Python documentation for
     regular expression syntax is described in the `Python documentation for
     the re module <https://docs.python.org/3/library/re.html>`_.
     the re module <https://docs.python.org/3/library/re.html>`_.

+ 20 - 17
docs/usage/init.rst.inc

@@ -12,23 +12,25 @@ borg init
 
 
     .. class:: borg-options-table
     .. class:: borg-options-table
 
 
-    +-------------------------------------------------------+------------------------------------+-----------------------------------------------------------------------------+
-    | **positional arguments**                                                                                                                                                 |
-    +-------------------------------------------------------+------------------------------------+-----------------------------------------------------------------------------+
-    |                                                       | ``REPOSITORY``                     | repository to create                                                        |
-    +-------------------------------------------------------+------------------------------------+-----------------------------------------------------------------------------+
-    | **optional arguments**                                                                                                                                                   |
-    +-------------------------------------------------------+------------------------------------+-----------------------------------------------------------------------------+
-    |                                                       | ``-e MODE``, ``--encryption MODE`` | select encryption key mode **(required)**                                   |
-    +-------------------------------------------------------+------------------------------------+-----------------------------------------------------------------------------+
-    |                                                       | ``--append-only``                  | create an append-only mode repository                                       |
-    +-------------------------------------------------------+------------------------------------+-----------------------------------------------------------------------------+
-    |                                                       | ``--storage-quota QUOTA``          | Set storage quota of the new repository (e.g. 5G, 1.5T). Default: no quota. |
-    +-------------------------------------------------------+------------------------------------+-----------------------------------------------------------------------------+
-    | .. class:: borg-common-opt-ref                                                                                                                                           |
-    |                                                                                                                                                                          |
-    | :ref:`common_options`                                                                                                                                                    |
-    +-------------------------------------------------------+------------------------------------+-----------------------------------------------------------------------------+
+    +-------------------------------------------------------+------------------------------------+---------------------------------------------------------------------------------+
+    | **positional arguments**                                                                                                                                                     |
+    +-------------------------------------------------------+------------------------------------+---------------------------------------------------------------------------------+
+    |                                                       | ``REPOSITORY``                     | repository to create                                                            |
+    +-------------------------------------------------------+------------------------------------+---------------------------------------------------------------------------------+
+    | **optional arguments**                                                                                                                                                       |
+    +-------------------------------------------------------+------------------------------------+---------------------------------------------------------------------------------+
+    |                                                       | ``-e MODE``, ``--encryption MODE`` | select encryption key mode **(required)**                                       |
+    +-------------------------------------------------------+------------------------------------+---------------------------------------------------------------------------------+
+    |                                                       | ``--append-only``                  | create an append-only mode repository                                           |
+    +-------------------------------------------------------+------------------------------------+---------------------------------------------------------------------------------+
+    |                                                       | ``--storage-quota QUOTA``          | Set storage quota of the new repository (e.g. 5G, 1.5T). Default: no quota.     |
+    +-------------------------------------------------------+------------------------------------+---------------------------------------------------------------------------------+
+    |                                                       | ``--make-parent-dirs``             | create the parent directories of the repository directory, if they are missing. |
+    +-------------------------------------------------------+------------------------------------+---------------------------------------------------------------------------------+
+    | .. class:: borg-common-opt-ref                                                                                                                                               |
+    |                                                                                                                                                                              |
+    | :ref:`common_options`                                                                                                                                                        |
+    +-------------------------------------------------------+------------------------------------+---------------------------------------------------------------------------------+
 
 
     .. raw:: html
     .. raw:: html
 
 
@@ -48,6 +50,7 @@ borg init
         -e MODE, --encryption MODE     select encryption key mode **(required)**
         -e MODE, --encryption MODE     select encryption key mode **(required)**
         --append-only                  create an append-only mode repository
         --append-only                  create an append-only mode repository
         --storage-quota QUOTA          Set storage quota of the new repository (e.g. 5G, 1.5T). Default: no quota.
         --storage-quota QUOTA          Set storage quota of the new repository (e.g. 5G, 1.5T). Default: no quota.
+        --make-parent-dirs             create the parent directories of the repository directory, if they are missing.
 
 
 
 
     :ref:`common_options`
     :ref:`common_options`

+ 6 - 2
docs/usage/mount.rst.inc

@@ -113,14 +113,18 @@ used in fstab entries:
 To allow a regular user to use fstab entries, add the ``user`` option:
 To allow a regular user to use fstab entries, add the ``user`` option:
 ``/path/to/repo /mnt/point fuse.borgfs defaults,noauto,user 0 0``
 ``/path/to/repo /mnt/point fuse.borgfs defaults,noauto,user 0 0``
 
 
-For mount options, see the fuse(8) manual page. Additional mount options
-supported by borg:
+For FUSE configuration and mount options, see the mount.fuse(8) manual page.
+
+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.
   view of the files in the archives. EXPERIMENTAL, layout may change in future.
 - allow_damaged_files: by default damaged files (where missing chunks were
 - allow_damaged_files: by default damaged files (where missing chunks were
   replaced with runs of zeros by borg check ``--repair``) are not readable and
   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.
   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".
 
 
 The BORG_MOUNT_DATA_CACHE_ENTRIES environment variable is meant for advanced users
 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
 to tweak the performance. It sets the number of cached data chunks; additional

+ 10 - 3
src/borg/testsuite/archiver.py

@@ -793,21 +793,28 @@ class ArchiverTestCase(ArchiverTestCaseBase):
     def test_mount_hardlinks(self):
     def test_mount_hardlinks(self):
         self._extract_hardlinks_setup()
         self._extract_hardlinks_setup()
         mountpoint = os.path.join(self.tmpdir, 'mountpoint')
         mountpoint = os.path.join(self.tmpdir, 'mountpoint')
-        with self.fuse_mount(self.repository_location + '::test', mountpoint, '--strip-components=2'), \
+        # we need to get rid of permissions checking because fakeroot causes issues with it.
+        # On all platforms, borg defaults to "default_permissions" and we need to get rid of it via "ignore_permissions".
+        # On macOS (darwin), we additionally need "defer_permissions" to switch off the checks in osxfuse.
+        if sys.platform == 'darwin':
+            ignore_perms = ['-o', 'ignore_permissions,defer_permissions']
+        else:
+            ignore_perms = ['-o', 'ignore_permissions']
+        with self.fuse_mount(self.repository_location + '::test', mountpoint, '--strip-components=2', *ignore_perms), \
              changedir(mountpoint):
              changedir(mountpoint):
             assert os.stat('hardlink').st_nlink == 2
             assert os.stat('hardlink').st_nlink == 2
             assert os.stat('subdir/hardlink').st_nlink == 2
             assert os.stat('subdir/hardlink').st_nlink == 2
             assert open('subdir/hardlink', 'rb').read() == b'123456'
             assert open('subdir/hardlink', 'rb').read() == b'123456'
             assert os.stat('aaaa').st_nlink == 2
             assert os.stat('aaaa').st_nlink == 2
             assert os.stat('source2').st_nlink == 2
             assert os.stat('source2').st_nlink == 2
-        with self.fuse_mount(self.repository_location + '::test', mountpoint, 'input/dir1'), \
+        with self.fuse_mount(self.repository_location + '::test', mountpoint, 'input/dir1', *ignore_perms), \
              changedir(mountpoint):
              changedir(mountpoint):
             assert os.stat('input/dir1/hardlink').st_nlink == 2
             assert os.stat('input/dir1/hardlink').st_nlink == 2
             assert os.stat('input/dir1/subdir/hardlink').st_nlink == 2
             assert os.stat('input/dir1/subdir/hardlink').st_nlink == 2
             assert open('input/dir1/subdir/hardlink', 'rb').read() == b'123456'
             assert open('input/dir1/subdir/hardlink', 'rb').read() == b'123456'
             assert os.stat('input/dir1/aaaa').st_nlink == 2
             assert os.stat('input/dir1/aaaa').st_nlink == 2
             assert os.stat('input/dir1/source2').st_nlink == 2
             assert os.stat('input/dir1/source2').st_nlink == 2
-        with self.fuse_mount(self.repository_location + '::test', mountpoint), \
+        with self.fuse_mount(self.repository_location + '::test', mountpoint, *ignore_perms), \
              changedir(mountpoint):
              changedir(mountpoint):
             assert os.stat('input/source').st_nlink == 4
             assert os.stat('input/source').st_nlink == 4
             assert os.stat('input/abba').st_nlink == 4
             assert os.stat('input/abba').st_nlink == 4