1
0
Fork 0
mirror of https://github.com/borgbackup/borg.git synced 2025-02-25 23:43:49 +00:00
Commit graph

7640 commits

Author SHA1 Message Date
Thomas Waldmann
ff564de1cc
allow mixing --progress and --list in log-json mode 2023-02-10 01:45:59 +01:00
TW
366731ba00
Merge pull request #7300 from RayyanAnsari/borg-platformdirs
use platformdirs
2023-02-10 00:09:44 +01:00
TW
16f4bf5d7b
Merge pull request #7328 from ThomasWaldmann/hashindex-compact
hashindex minor fixes, tweaks, tests
2023-02-09 22:46:48 +01:00
Thomas Waldmann
3d57dc0590
hashindex: add tests, misc. minor fixes/changes
test hashtable expansion/rebuild.

hashindex_lookup:
- return -2 for a compact / completely full hashtable
- return -1 and (via start_idx pointer) the deleted/tombstone bucket index.

fix size assertion (we add 1 element to trigger rebuild)

fix upper_limit check - since we'll be adding 1 to num_entries below,
the condition should be >=:

hashindex_compact: set min_empty/upper_limit

Co-authored-by: Dan Christensen <jdc+github@uwo.ca>
2023-02-09 22:14:07 +01:00
Thomas Waldmann
1ed8ac0408
hashindex_pytest: move hashtable create into separate function 2023-02-09 21:58:40 +01:00
Thomas Waldmann
e556233e30
hashindex_pytest: add a comment 2023-02-09 21:58:37 +01:00
Thomas Waldmann
4c2af9fb96
renamed hashindex_stress -> hashindex_pytest 2023-02-09 21:58:23 +01:00
TW
79d6835738
Merge pull request #7331 from ThomasWaldmann/undefine-ndebug-master
undef NDEBUG for chunker and hashindex
2023-02-09 21:52:20 +01:00
Thomas Waldmann
311ac55ebd
undef NDEBUG for chunker and hashindex
note:
intentionally not undef'ing it for all the cython-only generated C code.
2023-02-09 21:01:03 +01:00
TW
2b2586a098
Merge pull request #7330 from ThomasWaldmann/update-codecov
upgrade codecov-action to v3
2023-02-09 20:37:27 +01:00
Thomas Waldmann
142eb65223
upgrade codecov-action to v3 2023-02-09 18:46:36 +01:00
TW
406da3d419
Merge pull request #7325 from ThomasWaldmann/hashtable-fixes-master
hashindex bugfix and refactoring (master)
2023-02-08 23:53:24 +01:00
Thomas Waldmann
316bb7c937
add num_entries assertion 2023-02-08 22:45:11 +01:00
Thomas Waldmann
b79766a933
hashindex: simplify size_idx function
Thanks to @jdchristensen for the code.
2023-02-08 22:11:49 +01:00
Thomas Waldmann
a13d53ec1e
Simplify full HT scan assertion 2023-02-08 22:11:47 +01:00
Thomas Waldmann
4fc7815f11
hashindex: always have at least 1 empty bucket
avoid rounding / integer conversion issues bringing this down to 0.
2023-02-08 22:11:44 +01:00
Thomas Waldmann
4f8c4aea19
implement ht idx wrap around less strangely, add comment 2023-02-08 22:11:43 +01:00
Thomas Waldmann
907da00931
if HT is full with entries and tombstones: give up/fail early 2023-02-08 22:11:41 +01:00
Thomas Waldmann
0098ac9e63
more comments for hashindex_lookup 2023-02-08 22:11:34 +01:00
Thomas Waldmann
9bf352d00c
bugfix: do not resize hashindex with wrong num_empty
otherwise we would lose the decrement operation on num_empty.
2023-02-08 22:10:50 +01:00
TW
070c260460
Merge pull request #7327 from RayyanAnsari/pyinstaller-no-icon
pyinstaller: remove icon
2023-02-08 19:09:17 +01:00
Rayyan Ansari
37e958bfa4
pyinstaller: remove icon
Remove pyinstaller's default executable icon by setting it to the string 'NONE'.

While we're at it, update a comment.
2023-02-08 17:53:33 +00:00
Thomas Waldmann
83e6b4269e
hashindex: simplify assert 2023-02-08 16:25:15 +01:00
Thomas Waldmann
c9573c04ac
_hashindex: easier to understand code, dubious loops removed, asserts
hashindex_index returns the perfect hashtable index, but does not
check what's in the bucket there, so we had these loops afterwards
to search for an empty or deleted bucket.

problem: if the HT were completely filled with no empty and no deleted
buckets, that loop would never end. due to our HT resizing, it can
never happen, but still not pretty.

when using hashindex_lookup (as also used some lines above), the code
is easier to understand, because (after we resized the HT), we freshly
create the same situation as after the first call of that function:
- return value < 0, because we (still) can not find the key
- start_idx will point to an empty bucket

Thus, we do not need the problematic loops we had there.

Modified the checks to make sure we really have an empty or deleted
bucket before overwriting it with data.

Added some additional asserts to make sure the code behaves.
2023-02-08 14:51:54 +01:00
TW
978cb163e6
Merge pull request #7324 from ThomasWaldmann/hashtable-stresstests-master
add hashtable stress tests
2023-02-08 14:48:58 +01:00
Thomas Waldmann
3e33656238
add comment about how to provoke more collisions 2023-02-08 02:13:14 +01:00
Thomas Waldmann
9697f55534
add hashtable stress tests
Using NSIndex (repo index) HashIndex, but they all are very similar.
2023-02-08 01:53:30 +01:00
Thomas Waldmann
516c070c7c
fix tests for platformdirs 3.x.x 2023-02-07 21:14:16 +01:00
TW
653c051851
Merge pull request #7323 from ThomasWaldmann/coala-updates
coala: remove PEP8Bear
2023-02-06 23:40:52 +01:00
Thomas Waldmann
f29ff128fb
require 3.x.x releases of platformdirs
we don't want to suddenly/unexpectedly break stuff for borg users
just because platformdirs does a breaking release.

at platformdirs 2.0.0 macOS config dir changed.
at platformdirs 3.0.0 macOS config dir changed again.
at platformdirs 4.0.0 (future) - who knows?
2023-02-06 23:24:56 +01:00
Thomas Waldmann
de275fc8db
coala: remove PEP8Bear
it's not always happy with what black does.
2023-02-05 20:59:43 +01:00
TW
a3bdae65ac
Merge pull request #7322 from ThomasWaldmann/update-changes
update CHANGES
2023-02-05 00:06:11 +01:00
Thomas Waldmann
55af2933fb
update CHANGES 2023-02-04 20:43:50 +01:00
Thomas Waldmann
d9875a4d7e
improve test_get_security_dir 2023-02-04 18:23:35 +01:00
Thomas Waldmann
078bb7ee02
improve test_get_keys_dir 2023-02-04 18:19:15 +01:00
Thomas Waldmann
6ab424598d
improve test_get_cache_dir 2023-02-04 18:17:43 +01:00
Thomas Waldmann
4bacd0b722
improve test_get_config_dir 2023-02-04 18:15:57 +01:00
Thomas Waldmann
bb73e8682f
fix win2 typo 2023-02-04 18:11:28 +01:00
Thomas Waldmann
499e5133b5
test_config_dir_compat: don't test on win32
there is no old borg < 2.0 there anyway.
2023-02-04 01:18:16 +01:00
Thomas Waldmann
bde0f11e1e
get_security_dir: legacy=False default 2023-02-04 00:35:04 +01:00
Thomas Waldmann
1d4810af23
get_keys_dir: legacy=False default 2023-02-04 00:35:03 +01:00
Thomas Waldmann
b06dd1c66c
get_config_dir: legacy=False default 2023-02-04 00:35:01 +01:00
Thomas Waldmann
ebcda6f0a5
get_cache_dir: legacy=False default 2023-02-04 00:34:57 +01:00
Thomas Waldmann
424be763b2
get_base_dir: legacy=False default 2023-02-04 00:34:54 +01:00
Thomas Waldmann
81595a9ca0
conftest.py: use BORG_BASE_DIR to redirect borg testing .config/.cache into a temp dir
XDG_*_HOME is not honoured on macOS and on Windows if we use platformdirs.
2023-02-04 00:34:52 +01:00
Thomas Waldmann
fddf6afded
get_*_dir: make legacy=... kwarg only
it's better readable.
2023-02-04 00:34:45 +01:00
Thomas Waldmann
437b5fa859
do not fail on macOS due to different dirs from platformdirs 2023-02-04 00:34:42 +01:00
Thomas Waldmann
8379ecefaa
deal with BORG_BASE_DIR 2023-02-04 00:34:26 +01:00
Thomas Waldmann
d3d909ad31
add compatibility test: legacy vs. non-legacy platformdirs 2023-02-03 18:22:51 +01:00
Rayyan Ansari
6c7efbe128
add platformdirs to dependencies 2023-02-03 17:46:56 +01:00