Reiterate that 'file cache names are absolute'
Drive home the point that relative source names does not save you from re-chunking if absolute pathnames change.
Also: mention bind mount solution.
remove WSL autodetection. if WSL still has this problem, you need to
set BORG_WORKAROUNDS=basesyncfile in the borg process environment to
work around it.
(cherry picked from commit beb948fc71)
if the file is not a regular file, but a hardlink slave with a not
extracted hardlink master, chunks will be None and we must not call
preload(chunks).
(cherry picked from commit 291d58efa1)
On windows os.open does not work for directories.
If borg tries to open an directory on windows, None is returned
as file descriptor. The archive and archiver where adjusted to
handle the case if a file descriptor is None.
- Created a batch file to build borg on windows
- Adjusted setup.py to be runnable on windows and build the windows
extension
- Extracted the free space check to a function in the platform module
- Created the minimal needed (dummy) functions for the windows platform
module
docs about remote temp directory usage
Updated doc to cover use of temp directory on remote, in particular how to handle changing the directory used for systems such as QNAP with tiny default /tmp directories.
fixup by tw: do not mention specific brands, specific amounts
this is not QNAP specific, but may happen as well on other limited
systems. the amount of tmp files can also vary widely.
Fix various code blocks in the docs
- rst markup: put codeblock markup on separate line to make it better visible / separate it from normal text colons.
- borg help texts in archiver.py: put codeblock markup instead of colon - that way it looks like a single colon when using the cli help and also works as code block markup.
add a push-style example to borg-create docs
When I browsed the readthedocs and manpages while setting up Borg for
myself for the first time, I saw multiple hints that pushing backups via
SSH is supported (e.g. the existence of the `borg serve` command and the
`--rsh` option), but I never found a clear example. I only found
<https://borgbackup.readthedocs.io/en/stable/usage/general.html#repository-urls>
after being pointed to it by @ThomasWaldmann.
Therefore, an explicit example in the `borg create` documentation seems
appropriate. I put it next to the pull-style example using sshfs which
serves a similar usecase.
Before this fix, because known() only checked the key-type file, the
location file could go missing without being automatically regenerated.
Now a save() is triggered if not all files are present.
(cherry picked from commit c68cad9727)
the borg check --repair is needed to clean up all the orphaned chunks.
if the message is emitted on INFO log level, people likely do not see
it if they use default WARNING log level (they did not give -v).
(cherry picked from commit 389afcae9d)
if the remote server does not support the dict-based argument passing
yet (e.g. when accidentally using borg 0.29 on rsync.net), the GET rpc
call argument list failed to generate if the command currently being
processed was not a GET also.
note: rsync.net has a more recent borg as "borg1".
this happened because the user had pytest5 installed somehow,
although it is incompatible with python 3.4:
# python3 /usr/local/bin/borg --version
Traceback (most recent call last):
File "/usr/local/lib/python3.4/dist-packages/borg/archiver.py", line 81, in <module>
from .selftest import selftest
File "/usr/local/lib/python3.4/dist-packages/borg/selftest.py", line 21, in <module>
from .testsuite.hashindex import HashIndexDataTestCase, HashIndexRefcountingTestCase, HashIndexTestCase
File "/usr/local/lib/python3.4/dist-packages/borg/testsuite/__init__.py", line 29, in <module>
from pytest import raises
File "/usr/local/lib/python3.4/dist-packages/pytest.py", line 6, in <module>
from _pytest.assertion import register_assert_rewrite
File "/usr/local/lib/python3.4/dist-packages/_pytest/assertion/__init__.py", line 6, in <module>
from _pytest.assertion import rewrite
File "/usr/local/lib/python3.4/dist-packages/_pytest/assertion/rewrite.py", line 443, in <module>
ast.MatMult: "@",
AttributeError: 'module' object has no attribute 'MatMult'
This test assumed that zlib would always produce the same output for a
given input, and that assumption has proven incorrect. It rested on
zlib never improving. The zlib shipped in Clear Linux has algorithm
improvements, which caused this test to break.
This patch instead decompresses the expected value and compares that.
Signed-off-by: Thiago Macieira <thiago.macieira@intel.com>
It was broken because there's already a different reference named
github in `docs/global.rst.inc`. Fixed by using an anonymous hyperlink
reference, per https://stackoverflow.com/a/14067756/278488