Commit Graph

6515 Commits

Author SHA1 Message Date
Thomas Waldmann 7b36f001f6 fixup: set release date 2022-02-19 18:45:19 +01:00
Thomas Waldmann 0a5b329008 update CHANGES 2022-02-19 18:41:43 +01:00
TW 8a409ec1fb
Merge pull request #6306 from ThomasWaldmann/fix-savefile-races-master
SaveFile: fix race conditions
2022-02-17 16:51:43 +01:00
Laurent 6015ded828
docs: explain the difference between a path that ends with or without a slash (#6297)
docs: explain the difference between a path that ends with or without a slash
2022-02-16 23:53:11 +01:00
Thomas Waldmann 14b5c005d8 SaveFile: fix race conditions
Thanks to Andrey Bienkowski (@hexagonrecursion) for reporting this and writing reproducer code.

Changes:
- use different, randomly (but recognizably) named temp files while writing (securely made by os.mkstemp())
- make sure temp files are cleaned up in normal and error conditions
- SyncFile can now get corresponding pair of path + open os-level fd
- cleaned up: fd now means os-level fd, f means python-file-like object
- fixed a caller of SaveFile
2022-02-16 23:23:47 +01:00
TW da763cedda
Merge pull request #6301 from ThomasWaldmann/safe-unlink-master
safe_unlink (was: truncate_and_unlink)
2022-02-16 22:56:03 +01:00
Thomas Waldmann b292e158a6 rename truncate_and_unlink to safe_unlink
it usually does not truncate any more,
only under "disk full" circumstances and only if there is only one hardlink.
2022-02-15 21:08:34 +01:00
Thomas Waldmann 4a2ab496e0 safer truncate_and_unlink implementation
the previous implementation caused collateral damage on hardlink-copies of a repository,
see: https://github.com/borgbackup/borg/discussions/6286
2022-02-15 12:58:37 +01:00
TW 6c5e818510
Merge pull request #6299 from ThomasWaldmann/update-changes-master
update CHANGES
2022-02-14 20:33:27 +01:00
Thomas Waldmann ee32c1b63d update CHANGES 2022-02-14 18:55:59 +01:00
TW 4896fe1560
Merge pull request #6296 from ThomasWaldmann/cache-pre12-archive-meta
info: use a pre12-meta cache to accelerate stats for borg < 1.2 archives
2022-02-14 18:29:17 +01:00
TW fb194baf09
Merge pull request #6295 from taandrighetti/fix-dir-hardlinkmasters
diff: reduce memory consumption, fix is_hardlink_master
2022-02-14 18:25:36 +01:00
Thomas Waldmann a2fb9cde4e calc_stats progress display: add archive name 2022-02-14 18:00:02 +01:00
Thomas Waldmann 25e27a1539 info: use a pre12-meta cache to accelerate stats for borg < 1.2 archives
first time borg info is invoked on a borg 1.1 repo, it can take
a rather long time computing and caching some stats values for
1.1 archives, which borg 1.2 archives have in their archive
metadata structure. be patient, esp. if you have lots of old
archives.

following invocations are much faster.
2022-02-14 18:00:02 +01:00
Tomás Andrighetti a2ae36bb54 Exclude directories in is_hardlink_master 2022-02-13 19:23:40 -03:00
TW 0cebe62264
Merge pull request #6290 from ThomasWaldmann/compact-free-space-master
compact segments: improve freeable / freed space log output
2022-02-13 18:25:01 +01:00
TW aafb22ecf7
Merge pull request #6292 from ThomasWaldmann/fix-setdefault-master
implement more standard hashindex.setdefault behaviour
2022-02-13 13:54:13 +01:00
Thomas Waldmann 603b58f6a1 implement more standard hashindex.setdefault behaviour
the .get() like behaviour (== returning the value) was missing.

it's still not 100% like dict.setdefault, because there is no
default value None. but None doesn't make sense here, because we
usually need a N-tuple matching the hash table's value format.

note: this "bug" (or unusual implementation) was without consequences,
      because hashindex.setdefault is not used anywhere in borg, so
      it was also not used in a wrong way anywhere.

https://docs.python.org/3/library/stdtypes.html#dict.setdefault
2022-02-13 03:47:44 +01:00
Thomas Waldmann 17e8aef394 compact: not "freeable", but "maybe freeable"
e.g. if there is a ton of DELs in a segment, they all are maybe freeable,
but only if we also got rid of the respective PUTs (see also #6289).
2022-02-12 20:37:28 +01:00
Thomas Waldmann e80b5c2272 compact: derive freed space from quota use before/after, fixes #5679
due to the way quota accounting is done, this is likely not
100% precise, but much better than selling the hints as the truth.
2022-02-12 20:37:18 +01:00
TW 94c3d7eb27
Merge pull request #6263 from ThomasWaldmann/docs-links-master
improve linking inside docs
2022-02-08 22:34:11 +01:00
TW c56b15f271
Merge branch 'master' into docs-links-master 2022-02-08 21:57:58 +01:00
Andrey Bienkowski 24e8b38f1a
Doc: borg init: explain the encryption modes better (#6184)
docs:borg init: explain the encryption modes better

The documentation for borg init was not structured logically:
1. The topic is switched from the general discussion of `borg init`
   to the discussion of encryption modes without a title.
2. Obscure technical details (chunking, id generation etc) were
   above the high-level overview and other key information.
2022-02-08 21:55:51 +01:00
Thomas Waldmann 3428b9f2b4 docs: link to python 3.8 docs
because py38 is our minimum requirement.
2022-02-07 23:23:15 +01:00
Thomas Waldmann 510ceb86f8 docs: link to borg_placeholders 2022-02-07 22:36:24 +01:00
Thomas Waldmann d79b325494 docs: link to borg_patterns 2022-02-07 22:33:28 +01:00
Thomas Waldmann 42fb25d4a7 docs: use same phrasing in misc. help texts 2022-02-07 21:40:15 +01:00
bobthebadguy 45df345d29
Clarify usage of patternfile roots (#6242) 2022-02-07 20:53:25 +01:00
TW 713efb5704
Merge pull request #6260 from hexagonrecursion/patch-1
Add hexagon-recursion to AUTHORS (master)
2022-02-07 20:17:39 +01:00
Andrey Bienkowski 3b5aab9e3d
Add hexagon-recursion to AUTHORS 2022-02-07 07:29:55 +00:00
TW 8c95dd46e3
Merge pull request #6257 from ThomasWaldmann/upgrade-docs
docs: add borg 1.2 upgrade notes, fixes #6217
2022-02-06 23:17:21 +01:00
Thomas Waldmann 634b1e5a1a docs: add borg 1.2 upgrade notes 2022-02-06 21:22:37 +01:00
TW 5fec0b8cb2
Merge pull request #6255 from ThomasWaldmann/docs-fixes-master
docs: indentation fixes (master)
2022-02-06 15:30:49 +01:00
Thomas Waldmann f0809cfeba docs: rst markup: remove accidental indentation in patterns help 2022-02-06 00:47:33 +01:00
Thomas Waldmann 3f02d3cd3d docs: rst markup: remove accidental indentation, fixes #6248 2022-02-06 00:44:51 +01:00
TW d4eb9bbd35
Merge pull request #6243 from hexagonrecursion/test-keyfile
Test: borg init refuses to overwrite keyfile
2022-02-06 00:04:51 +01:00
TW e336e74659
Merge pull request #6249 from borgbackup/rel120rc1
release 1.2.0 rc1
2022-02-05 23:05:44 +01:00
Andrey Bienkowski e21343d2a8 Fix ArchiverTestCaseBinary.test_init_refuse_to_overwrite_keyfile 2022-02-05 22:32:09 +03:00
Andrey Bienkowski 29201a0eb5 Test: borg init refuses to overwrite keyfile
https://github.com/borgbackup/borg/pull/6046 neglected to
add a regression test
2022-02-05 22:32:09 +03:00
Thomas Waldmann d6bfb1147c appveyor: use py38 2022-02-05 18:04:47 +01:00
Thomas Waldmann ef8aac2e4c build_man 2022-02-05 17:52:25 +01:00
Thomas Waldmann b430c8d15a build_usage 2022-02-05 17:52:25 +01:00
Thomas Waldmann 55591b882e setup_docs: put import-tar into same file as export-tar 2022-02-05 17:52:25 +01:00
Thomas Waldmann fa26d5f7c4 update CHANGES 2022-02-05 17:45:35 +01:00
TW cde1f491aa
Merge pull request #6246 from ThomasWaldmann/excl-broken-setuptools-master
setuptools 60.7.0 is incompatible with pyinstaller
2022-02-05 15:42:32 +01:00
Thomas Waldmann 209a9e786c setuptools 60.7.0 is incompatible with pyinstaller
... even after fixes there.
2022-02-05 15:25:13 +01:00
TW 4fa9f1faa4
Merge pull request #6188 from hexagonrecursion/nonce
docs: impact of deleting path/to/repo/nonce
2022-02-05 13:31:07 +01:00
Andrey Bienkowski 6bc1f48e4e Apply review suggestions 2022-02-05 09:07:13 +03:00
Andrey Bienkowski d6c16d77cb Review suggestion: mention local nonce path
> do we maybe also want to mention the specific path where the local
> nonce is kept?
2022-02-05 09:07:13 +03:00
Andrey Bienkowski fab5024cb7 Doc: warn about tampered server nonce
https://github.com/borgbackup/borg/pull/6188#discussion_r794752672
> Well, guess one could also use max(list of trusted nonce values).
>
> The real issue is if you have lost all or some of the trusted
> (client side) nonce values and you also have reason to not trust the
> server side nonce, because someone might attack you on the server.
2022-02-05 09:07:13 +03:00