Commit Graph

6620 Commits

Author SHA1 Message Date
Thomas Waldmann
d4dee41a5b vagrant: add ubuntu "jammy" 22.04 LTS VM 2022-02-22 14:27:42 +01:00
Andrey Bienkowski
0132eee1d4
Write a test for safe_unlink (#6311)
write a test for safe_unlink
2022-02-20 14:27:44 +01:00
Thomas Waldmann
7265f6adb8 quickstart docs: only borg compact frees disk space 2022-02-19 19:25:16 +01:00
Thomas Waldmann
6641a9629d build_man 2022-02-19 18:48:13 +01:00
Thomas Waldmann
9a8eec6af1 build_usage 2022-02-19 18:47:47 +01:00
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