mirror of
https://github.com/restic/restic.git
synced 2025-08-25 12:27:49 +00:00
Compare commits
1159 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
7d4b7ad9cb | ||
![]() |
a883bb6596 | ||
![]() |
91acef90b2 | ||
![]() |
b2b7727b31 | ||
![]() |
0e4c9a5421 | ||
![]() |
49fa8fe6dd | ||
![]() |
12f167ee79 | ||
![]() |
bb018fbc3e | ||
![]() |
3b24e0ac55 | ||
![]() |
04da31af2b | ||
![]() |
65923e9c26 | ||
![]() |
b903081804 | ||
![]() |
beb1e872cc | ||
![]() |
db350c0430 | ||
![]() |
716a5dd20d | ||
![]() |
dbd07ade98 | ||
![]() |
7adf1e5d37 | ||
![]() |
8f94eb5420 | ||
![]() |
8aaba83719 | ||
![]() |
e16a6d4c50 | ||
![]() |
34e67e3510 | ||
![]() |
c527c05590 | ||
![]() |
ed23edeb62 | ||
![]() |
0f398b82e3 | ||
![]() |
99755c634b | ||
![]() |
f5f13f6648 | ||
![]() |
00216d54a1 | ||
![]() |
1f3f68b2c0 | ||
![]() |
57acc769b4 | ||
![]() |
20ad14e362 | ||
![]() |
c995b5be52 | ||
![]() |
1adf28a2b5 | ||
![]() |
6d9675c323 | ||
![]() |
551b31ce3c | ||
![]() |
ec99507e4c | ||
![]() |
5f97f534b1 | ||
![]() |
ed11bbd0e2 | ||
![]() |
5bb9cb056d | ||
![]() |
cd9bd22563 | ||
![]() |
ecc826ef7d | ||
![]() |
fb43cbab49 | ||
![]() |
41d31b1e27 | ||
![]() |
f6ea5c5865 | ||
![]() |
4a7a6b06af | ||
![]() |
e499bbe3ae | ||
![]() |
52682b1c7b | ||
![]() |
c15b4bceae | ||
![]() |
74348be3fa | ||
![]() |
37d0e1fe58 | ||
![]() |
da196aa43e | ||
![]() |
099774c2aa | ||
![]() |
cd2f53e3f9 | ||
![]() |
0c5a55d1bd | ||
![]() |
9ddca65f6d | ||
![]() |
06fee601bc | ||
![]() |
1cb920cc57 | ||
![]() |
8f53ffb921 | ||
![]() |
351cbb4f94 | ||
![]() |
b8b5508d15 | ||
![]() |
c5542ddcd2 | ||
![]() |
dffb8e0c14 | ||
![]() |
b151fa498a | ||
![]() |
c354b55e62 | ||
![]() |
375953a001 | ||
![]() |
6306797238 | ||
![]() |
ef9164fcbb | ||
![]() |
e2bcfd68dd | ||
![]() |
33fb351386 | ||
![]() |
c9840da4f8 | ||
![]() |
732184a849 | ||
![]() |
24178c97e9 | ||
![]() |
7a36306901 | ||
![]() |
b404ad4eaa | ||
![]() |
e02a10c58a | ||
![]() |
81dc8c8d13 | ||
![]() |
72922a79ed | ||
![]() |
89a8006578 | ||
![]() |
3b516d4b70 | ||
![]() |
0de3b24756 | ||
![]() |
0fbff39ae8 | ||
![]() |
68b1f30733 | ||
![]() |
a86a56cf3b | ||
![]() |
050ed616ae | ||
![]() |
8430399fce | ||
![]() |
aea96b7d86 | ||
![]() |
bcae28afb4 | ||
![]() |
10fa5cde0a | ||
![]() |
61e7386384 | ||
![]() |
94f6e7d4a6 | ||
![]() |
90fb6f70b4 | ||
![]() |
29b8500254 | ||
![]() |
705cabb304 | ||
![]() |
a6f3ae5790 | ||
![]() |
ea37240597 | ||
![]() |
bd2f6aaac3 | ||
![]() |
583372956b | ||
![]() |
1678392a6d | ||
![]() |
d9002f050e | ||
![]() |
b150dd0235 | ||
![]() |
cccc17e4e9 | ||
![]() |
2723159ed4 | ||
![]() |
ecc62c8be2 | ||
![]() |
cc5325d22b | ||
![]() |
da0e45cf40 | ||
![]() |
14aa6f2a00 | ||
![]() |
7bdb985dde | ||
![]() |
1bfe98bdc0 | ||
![]() |
1c071a462e | ||
![]() |
25d22d5241 | ||
![]() |
7dd33c0ecc | ||
![]() |
c0b5ec55ab | ||
![]() |
2e3d4640be | ||
![]() |
38b2e9b42c | ||
![]() |
049a105ba5 | ||
![]() |
4b98b5562d | ||
![]() |
f90bf84ba7 | ||
![]() |
83d23b3ae8 | ||
![]() |
eae7366563 | ||
![]() |
25648e2501 | ||
![]() |
62520bb7b4 | ||
![]() |
4ba31df08f | ||
![]() |
5efcbe143c | ||
![]() |
0df585dd99 | ||
![]() |
223da7344e | ||
![]() |
2b67862420 | ||
![]() |
2f934f5803 | ||
![]() |
04d101fa94 | ||
![]() |
579cd6dc64 | ||
![]() |
3ebdadc58f | ||
![]() |
bc8b2455b9 | ||
![]() |
60c6a09324 | ||
![]() |
8bf6b2b80d | ||
![]() |
78ea69082a | ||
![]() |
cbe73ace3f | ||
![]() |
63bed34608 | ||
![]() |
0c749dd358 | ||
![]() |
d45a2475e1 | ||
![]() |
6b5d6b9f2c | ||
![]() |
648edeca40 | ||
![]() |
40ac678252 | ||
![]() |
06ee0339aa | ||
![]() |
57d8eedb88 | ||
![]() |
ca1803cacb | ||
![]() |
0af89a5738 | ||
![]() |
364a396fd6 | ||
![]() |
9a9f559806 | ||
![]() |
933c9af328 | ||
![]() |
a6ae79b39e | ||
![]() |
f3d964a8c1 | ||
![]() |
a9972dbe7d | ||
![]() |
f755233210 | ||
![]() |
fa20a78bb6 | ||
![]() |
ff7ef5007e | ||
![]() |
65612d797c | ||
![]() |
2d5e28e777 | ||
![]() |
4fefa2ade2 | ||
![]() |
3c5d1eabe9 | ||
![]() |
bec391ee26 | ||
![]() |
daafcaf380 | ||
![]() |
1d7e7fcd6b | ||
![]() |
57d59c71e3 | ||
![]() |
bb83c78ee5 | ||
![]() |
60aa87bbab | ||
![]() |
34609bca0e | ||
![]() |
e5d597fd22 | ||
![]() |
0eddc89e98 | ||
![]() |
41b0f1d43a | ||
![]() |
6a793db9ca | ||
![]() |
05cebc1c4b | ||
![]() |
ce39727846 | ||
![]() |
9aa06ce959 | ||
![]() |
5968971313 | ||
![]() |
95374767de | ||
![]() |
c100a62ebf | ||
![]() |
c41a1b66e1 | ||
![]() |
705aed0ecb | ||
![]() |
28d6de648c | ||
![]() |
bb40b55d1c | ||
![]() |
a24c1e99a6 | ||
![]() |
fd56ead4a8 | ||
![]() |
cc679c6494 | ||
![]() |
c9c7671c58 | ||
![]() |
530f129a39 | ||
![]() |
8ad231bcad | ||
![]() |
a1eb923876 | ||
![]() |
bcdfc2a8ea | ||
![]() |
686b0b2a3e | ||
![]() |
69a2e81bd3 | ||
![]() |
278e93f738 | ||
![]() |
747d2ecd7b | ||
![]() |
98c6ca9d8f | ||
![]() |
9113b2620f | ||
![]() |
f115d64634 | ||
![]() |
923c06cea0 | ||
![]() |
f4d3ed77c4 | ||
![]() |
189e0fe5a9 | ||
![]() |
32ffcd86a2 | ||
![]() |
f032a9d0ad | ||
![]() |
66818a8f98 | ||
![]() |
4b5234924b | ||
![]() |
726a1969cd | ||
![]() |
bb0fa76c06 | ||
![]() |
537cfe2e4c | ||
![]() |
f175da2756 | ||
![]() |
f86ef4d3dd | ||
![]() |
c15bedccc0 | ||
![]() |
f88acd4503 | ||
![]() |
11b8c3a158 | ||
![]() |
ec0c91e233 | ||
![]() |
0224e276ec | ||
![]() |
73f54cc5ea | ||
![]() |
a47d9a1c40 | ||
![]() |
b044649118 | ||
![]() |
375a3db64d | ||
![]() |
327f418a9c | ||
![]() |
ad14d6e4ac | ||
![]() |
7ebaf6e899 | ||
![]() |
559acea0d8 | ||
![]() |
4cace1ffe9 | ||
![]() |
2b69a1c53b | ||
![]() |
f6339b88af | ||
![]() |
c0f7ba2388 | ||
![]() |
4d6ab83019 | ||
![]() |
82592b88b5 | ||
![]() |
b922774343 | ||
![]() |
dc29709742 | ||
![]() |
220eaee76b | ||
![]() |
6fa45d0d39 | ||
![]() |
bbd180ae21 | ||
![]() |
bef1064b8e | ||
![]() |
7b4fe7bad5 | ||
![]() |
348e966daa | ||
![]() |
0e5fe4c6ab | ||
![]() |
13fbc96ed3 | ||
![]() |
e1ba7ab684 | ||
![]() |
dc060356c2 | ||
![]() |
32c9667990 | ||
![]() |
d268552a0a | ||
![]() |
5756c96c9f | ||
![]() |
df614fff26 | ||
![]() |
11a4bb051e | ||
![]() |
5f9ac2b165 | ||
![]() |
b1d1202b1d | ||
![]() |
5dceadeb72 | ||
![]() |
1ccab95bc4 | ||
![]() |
24a2e5cab9 | ||
![]() |
403390479c | ||
![]() |
d29abc1a31 | ||
![]() |
c091e43b33 | ||
![]() |
aaac63da8d | ||
![]() |
fd4d23460f | ||
![]() |
8dd95b710e | ||
![]() |
783b8781a7 | ||
![]() |
543649f2f2 | ||
![]() |
0a4cddb34d | ||
![]() |
333c2c6ed4 | ||
![]() |
92df039e5d | ||
![]() |
9354262b1b | ||
![]() |
06141ce1f4 | ||
![]() |
59a90943bb | ||
![]() |
5ab3e6276a | ||
![]() |
4f1fae9c98 | ||
![]() |
8fe159cc5a | ||
![]() |
3499c6354e | ||
![]() |
144257f8bd | ||
![]() |
c0f34af9db | ||
![]() |
a571fc4aa1 | ||
![]() |
b52a8ff05c | ||
![]() |
b4de902596 | ||
![]() |
47e05080a9 | ||
![]() |
c7ace314f6 | ||
![]() |
0e8893dae9 | ||
![]() |
137f0bc944 | ||
![]() |
01f0db4e56 | ||
![]() |
7c87fb941c | ||
![]() |
3b0bb02a68 | ||
![]() |
0d260cfd82 | ||
![]() |
8e5eb1090c | ||
![]() |
af3f7c866f | ||
![]() |
24267e9a9d | ||
![]() |
8e51e1e605 | ||
![]() |
575d26ec87 | ||
![]() |
2dafda9164 | ||
![]() |
f8910bc4ff | ||
![]() |
b06427c9f6 | ||
![]() |
006380199e | ||
![]() |
04216eb9aa | ||
![]() |
4fea3a413d | ||
![]() |
ba58ccbe07 | ||
![]() |
05651d6d4f | ||
![]() |
b57d42905c | ||
![]() |
d966c52707 | ||
![]() |
1e2794fa55 | ||
![]() |
68c9cb9c6a | ||
![]() |
c4fc5c97f9 | ||
![]() |
b21241ec1c | ||
![]() |
ee6688a9f6 | ||
![]() |
27634a1a68 | ||
![]() |
aa77702e49 | ||
![]() |
6877aaa8aa | ||
![]() |
2e9ee8577a | ||
![]() |
59d46bb3f5 | ||
![]() |
5c7a9a739a | ||
![]() |
32603d49c4 | ||
![]() |
8c18c65b3b | ||
![]() |
4ccd5e806b | ||
![]() |
b361284f28 | ||
![]() |
738b2a0445 | ||
![]() |
ae45f3b04f | ||
![]() |
8e2695be0b | ||
![]() |
35d968bcde | ||
![]() |
4133fee6f9 | ||
![]() |
c8c8391b21 | ||
![]() |
ee7c28f5e6 | ||
![]() |
3e60d38a23 | ||
![]() |
9adae5521d | ||
![]() |
201e5c7e74 | ||
![]() |
a6f83e0011 | ||
![]() |
bc945d0bf0 | ||
![]() |
b513597546 | ||
![]() |
22147e1e02 | ||
![]() |
d03460010f | ||
![]() |
aa39bf3cf6 | ||
![]() |
28e1c4574b | ||
![]() |
c3400d3c55 | ||
![]() |
99547518cd | ||
![]() |
e10420553b | ||
![]() |
367f35db27 | ||
![]() |
8d62a7adb4 | ||
![]() |
02634dce7a | ||
![]() |
964977677f | ||
![]() |
258b487d8f | ||
![]() |
de9bc031df | ||
![]() |
246d3032ae | ||
![]() |
d8c00b9726 | ||
![]() |
a3113c6097 | ||
![]() |
b50f48594d | ||
![]() |
61e827ae4f | ||
![]() |
fcad5e6f5d | ||
![]() |
0aa73bbd39 | ||
![]() |
a81f0432e9 | ||
![]() |
95a1bb4261 | ||
![]() |
cff22a5f01 | ||
![]() |
7a6dcb4831 | ||
![]() |
7cf042118f | ||
![]() |
cea7191995 | ||
![]() |
ba688aad20 | ||
![]() |
9c290a8093 | ||
![]() |
0e155fd9a6 | ||
![]() |
e0b743c64d | ||
![]() |
6922360179 | ||
![]() |
d4aadfa389 | ||
![]() |
16849d5361 | ||
![]() |
09c14f33c8 | ||
![]() |
feb790f497 | ||
![]() |
ba44666704 | ||
![]() |
1a6160d152 | ||
![]() |
21b1d7a880 | ||
![]() |
5278ab51c8 | ||
![]() |
403b01b788 | ||
![]() |
d7d7b4ab27 | ||
![]() |
8e38c43c27 | ||
![]() |
2b88cd6eab | ||
![]() |
2e3f1c08c5 | ||
![]() |
5760ba6989 | ||
![]() |
5ee25e669a | ||
![]() |
5600f11696 | ||
![]() |
b8acad4da0 | ||
![]() |
d3ebec8f21 | ||
![]() |
f9d4e0c2af | ||
![]() |
119e6aee01 | ||
![]() |
07e5c38361 | ||
![]() |
4eae4d3e1a | ||
![]() |
83cb58b4f3 | ||
![]() |
7c5d63a794 | ||
![]() |
8b7c952f17 | ||
![]() |
e43d2d45f7 | ||
![]() |
03e9a26018 | ||
![]() |
43cc01d63e | ||
![]() |
7112a132c3 | ||
![]() |
4bb5240720 | ||
![]() |
999fe29976 | ||
![]() |
9197c63007 | ||
![]() |
ddcf549eba | ||
![]() |
a61fbd287a | ||
![]() |
6d2d297215 | ||
![]() |
49126796d0 | ||
![]() |
401e432e9d | ||
![]() |
aeed420e1a | ||
![]() |
9959190e39 | ||
![]() |
c3538b063a | ||
![]() |
d92957dd78 | ||
![]() |
928914f821 | ||
![]() |
985722b102 | ||
![]() |
ab819b2344 | ||
![]() |
d0668b695d | ||
![]() |
7ce4cb7908 | ||
![]() |
430ab32941 | ||
![]() |
e99ad39b34 | ||
![]() |
2e606ca70b | ||
![]() |
4a501d7118 | ||
![]() |
9ec7eee803 | ||
![]() |
b25d0773b6 | ||
![]() |
5265550ff3 | ||
![]() |
e89fc2a29d | ||
![]() |
67e4620cd6 | ||
![]() |
5d3c5b9e50 | ||
![]() |
ebe9f2c969 | ||
![]() |
d114e483c4 | ||
![]() |
34c1a83340 | ||
![]() |
aa3b1925b4 | ||
![]() |
5c6b6edefe | ||
![]() |
822422ef03 | ||
![]() |
d6575f53ca | ||
![]() |
78d2312ee9 | ||
![]() |
46b30b9826 | ||
![]() |
bd191ec60b | ||
![]() |
519059cca4 | ||
![]() |
19afad8a09 | ||
![]() |
0f89f443c7 | ||
![]() |
c147422ba5 | ||
![]() |
34fe1362da | ||
![]() |
a5ebd5de4b | ||
![]() |
5b6a77058a | ||
![]() |
3047bf611c | ||
![]() |
5d4568d393 | ||
![]() |
eb83402d39 | ||
![]() |
ef58ddd7b1 | ||
![]() |
7fc178aaf4 | ||
![]() |
1acbda18f8 | ||
![]() |
da1a359c8b | ||
![]() |
041a51512a | ||
![]() |
1ebd57247a | ||
![]() |
825b95e313 | ||
![]() |
1220fe9650 | ||
![]() |
ef618bdd3f | ||
![]() |
b48766d7b8 | ||
![]() |
20f1913ef7 | ||
![]() |
d79e61ce5d | ||
![]() |
988b386e8b | ||
![]() |
14d09a6081 | ||
![]() |
381da0443a | ||
![]() |
8b9778d537 | ||
![]() |
17c27400f8 | ||
![]() |
f76643bd2e | ||
![]() |
be9ccc186e | ||
![]() |
2363e5c083 | ||
![]() |
8e0ca80547 | ||
![]() |
d66e755ac7 | ||
![]() |
837b816358 | ||
![]() |
d6309961c5 | ||
![]() |
8b4dd70013 | ||
![]() |
7689d6c679 | ||
![]() |
6c69f08a7b | ||
![]() |
3e70bac56e | ||
![]() |
2a630c51c1 | ||
![]() |
d0f1060df7 | ||
![]() |
f481ad64c8 | ||
![]() |
7ddd803e46 | ||
![]() |
e5b2c4d571 | ||
![]() |
dc2db2de5e | ||
![]() |
7682149c9d | ||
![]() |
b03277ead5 | ||
![]() |
1b233c4e2e | ||
![]() |
4042db5169 | ||
![]() |
be6baaec12 | ||
![]() |
baf58fbaa8 | ||
![]() |
d629333efe | ||
![]() |
c169e37139 | ||
![]() |
1b4af0c6e5 | ||
![]() |
3174641ca4 | ||
![]() |
5478ab22c5 | ||
![]() |
d768c1c3e4 | ||
![]() |
908f7441fe | ||
![]() |
4c90d91d4d | ||
![]() |
694dfa026a | ||
![]() |
582167d671 | ||
![]() |
3822ded0b3 | ||
![]() |
cf0a8d7758 | ||
![]() |
dd7cd5b9b3 | ||
![]() |
a0c1ae9f90 | ||
![]() |
5d0649faaf | ||
![]() |
faa4597af1 | ||
![]() |
6ed157aee6 | ||
![]() |
f7808245aa | ||
![]() |
bee15dd555 | ||
![]() |
0e1d082b12 | ||
![]() |
d464543171 | ||
![]() |
6b40456db7 | ||
![]() |
1bc87e1718 | ||
![]() |
c1a5da56e3 | ||
![]() |
193c62dfc3 | ||
![]() |
a825e0d409 | ||
![]() |
b824d8cdcc | ||
![]() |
a2e89234fc | ||
![]() |
b4ae05627f | ||
![]() |
bd7bca2b51 | ||
![]() |
be90a565cc | ||
![]() |
7a5d29ce24 | ||
![]() |
d198a77d86 | ||
![]() |
cb5a61c46e | ||
![]() |
ee6b9dc492 | ||
![]() |
506d92e87c | ||
![]() |
ad6eabbfa5 | ||
![]() |
7681a63fdb | ||
![]() |
99e4ccbd94 | ||
![]() |
22f46c18f9 | ||
![]() |
6db979b3a6 | ||
![]() |
9cdc8da10f | ||
![]() |
b51e73e78f | ||
![]() |
98dcd0a887 | ||
![]() |
e0d6bf525c | ||
![]() |
5d0523e2f1 | ||
![]() |
c586a5e20f | ||
![]() |
623556bab6 | ||
![]() |
de0162ea76 | ||
![]() |
fc506f8538 | ||
![]() |
cc4728d287 | ||
![]() |
c3374b3ea5 | ||
![]() |
7f0929e519 | ||
![]() |
ed94678820 | ||
![]() |
e530d422a0 | ||
![]() |
7a992fc794 | ||
![]() |
77b1980d8e | ||
![]() |
6ff9517e45 | ||
![]() |
ce902aac67 | ||
![]() |
b6c86ababe | ||
![]() |
0d9ac78437 | ||
![]() |
7e96a5af62 | ||
![]() |
f414db987d | ||
![]() |
522406b4f0 | ||
![]() |
dbca93da28 | ||
![]() |
b4dfab002a | ||
![]() |
2758d76b77 | ||
![]() |
af50fe9ac0 | ||
![]() |
4cccffab58 | ||
![]() |
2ea6c82cf6 | ||
![]() |
bb27f7408c | ||
![]() |
c4b3a154ba | ||
![]() |
2cb2aa31cd | ||
![]() |
6f517858e8 | ||
![]() |
f0bb4f8708 | ||
![]() |
40c8755b13 | ||
![]() |
f673068dbb | ||
![]() |
f26231c9e6 | ||
![]() |
80e3efffef | ||
![]() |
01ab36336f | ||
![]() |
6e92d852a8 | ||
![]() |
9ad3ad5972 | ||
![]() |
2930a102de | ||
![]() |
8fa64a8f99 | ||
![]() |
f3fdc66b32 | ||
![]() |
b82f4824f0 | ||
![]() |
0b9b4c52ad | ||
![]() |
0b7291b8b2 | ||
![]() |
cfa80e2c6b | ||
![]() |
74ae76036f | ||
![]() |
09497aec02 | ||
![]() |
83b4c50ee3 | ||
![]() |
caa17988a3 | ||
![]() |
a3e48da3a3 | ||
![]() |
b3cdee66a9 | ||
![]() |
1ed775e3a8 | ||
![]() |
38becfc436 | ||
![]() |
82c268c917 | ||
![]() |
7266f07c87 | ||
![]() |
55a11c1396 | ||
![]() |
eaf43607f9 | ||
![]() |
7f3b2be1e8 | ||
![]() |
176b387d98 | ||
![]() |
324935cb80 | ||
![]() |
1b076cda97 | ||
![]() |
d7e2892048 | ||
![]() |
8a44258b6f | ||
![]() |
420ddc03c9 | ||
![]() |
e43be84eb8 | ||
![]() |
1e3f05c3f1 | ||
![]() |
6a6d313c9a | ||
![]() |
0269381b8d | ||
![]() |
0a6fa602c8 | ||
![]() |
2db7733ee3 | ||
![]() |
f678f7cb04 | ||
![]() |
1751afae26 | ||
![]() |
57f4003f2f | ||
![]() |
696c18e031 | ||
![]() |
04a8ee80fb | ||
![]() |
15679be858 | ||
![]() |
7d14b1baf1 | ||
![]() |
ad6ac680af | ||
![]() |
846d021db5 | ||
![]() |
b9fa6e05bd | ||
![]() |
73053674d9 | ||
![]() |
e85a21eda2 | ||
![]() |
623770eebb | ||
![]() |
d0590b7841 | ||
![]() |
5cbde03eae | ||
![]() |
7643237da5 | ||
![]() |
5723c72eb1 | ||
![]() |
2bdc40e612 | ||
![]() |
23ebec717c | ||
![]() |
4ffd479ba4 | ||
![]() |
2ba14160de | ||
![]() |
4a10ebed15 | ||
![]() |
b817681a11 | ||
![]() |
c206a101a3 | ||
![]() |
32f4997733 | ||
![]() |
dcb00fd2d1 | ||
![]() |
79321a195c | ||
![]() |
049f4c4144 | ||
![]() |
3bf53da672 | ||
![]() |
5a6f2f9fa0 | ||
![]() |
04e49924fb | ||
![]() |
768c890fcb | ||
![]() |
fcb3ddf181 | ||
![]() |
8b8bd4e8ac | ||
![]() |
443cc49afd | ||
![]() |
1f5369e072 | ||
![]() |
827ab02eea | ||
![]() |
e9c39442fb | ||
![]() |
9729e6d7ef | ||
![]() |
c44b21d366 | ||
![]() |
8c11fc3ec9 | ||
![]() |
a0cef9f247 | ||
![]() |
163ab9c025 | ||
![]() |
89d3ce852b | ||
![]() |
fbcbd5318c | ||
![]() |
d9ea1e9ee2 | ||
![]() |
715d457aad | ||
![]() |
9be1bd2acc | ||
![]() |
7478cbf70e | ||
![]() |
b2043e8198 | ||
![]() |
5639c41b6a | ||
![]() |
64a7ec5341 | ||
![]() |
6cbeb4a9f9 | ||
![]() |
f5c219f5a2 | ||
![]() |
d71b29221b | ||
![]() |
71ff6b77f0 | ||
![]() |
6970d05d47 | ||
![]() |
3934480da4 | ||
![]() |
71a0157c2c | ||
![]() |
2aad6f24b5 | ||
![]() |
ec4dfa3c66 | ||
![]() |
8d3f04aefa | ||
![]() |
b609523582 | ||
![]() |
ac96a4138d | ||
![]() |
7e36ec279d | ||
![]() |
be524f0b78 | ||
![]() |
9a7db6675c | ||
![]() |
d6e3c7f28e | ||
![]() |
98a3125ce4 | ||
![]() |
87d899c099 | ||
![]() |
6f3883c9d2 | ||
![]() |
545220803b | ||
![]() |
ce89018902 | ||
![]() |
b6a38d43b3 | ||
![]() |
3af9c2cc58 | ||
![]() |
6f53ecc1ae | ||
![]() |
cd50feb66f | ||
![]() |
74df9d5998 | ||
![]() |
dbb5860dc9 | ||
![]() |
753e56ee29 | ||
![]() |
fa25d6118e | ||
![]() |
bba1e81719 | ||
![]() |
120ccc8754 | ||
![]() |
bba4c69a2a | ||
![]() |
3e1de52e0a | ||
![]() |
621023a50b | ||
![]() |
90e9c5c4cc | ||
![]() |
7137034517 | ||
![]() |
cdaf9b4f26 | ||
![]() |
5e0f1c3cef | ||
![]() |
0df022fa6d | ||
![]() |
04c23fa95d | ||
![]() |
bb5f196b09 | ||
![]() |
c16f989d4a | ||
![]() |
00d7fcff96 | ||
![]() |
a6e9e08034 | ||
![]() |
856d5e4303 | ||
![]() |
6c4ceaf1e7 | ||
![]() |
99634c0936 | ||
![]() |
fdc53a9d32 | ||
![]() |
6923353c43 | ||
![]() |
5a11d14082 | ||
![]() |
0936d864a4 | ||
![]() |
ec7c9ce88b | ||
![]() |
2cd7e90ad1 | ||
![]() |
c1a8fa4290 | ||
![]() |
e68c3a4e62 | ||
![]() |
1974ad7ce2 | ||
![]() |
ef53ca4a5a | ||
![]() |
bf81bf0795 | ||
![]() |
e0a7852b8b | ||
![]() |
8ef2968f28 | ||
![]() |
e4f20dea61 | ||
![]() |
fe5a8e137a | ||
![]() |
628ae799ca | ||
![]() |
ed8aa15376 | ||
![]() |
a77d5c4d11 | ||
![]() |
19641bf828 | ||
![]() |
a0fa9c6e9f | ||
![]() |
90d2c0502b | ||
![]() |
bc96879d41 | ||
![]() |
307f14604f | ||
![]() |
19581dbc18 | ||
![]() |
8bdfcf779f | ||
![]() |
910d917b71 | ||
![]() |
2c893fe43c | ||
![]() |
f92ecf13c9 | ||
![]() |
0c0e7b6957 | ||
![]() |
c9ef873192 | ||
![]() |
d08549f0ae | ||
![]() |
f144920ed5 | ||
![]() |
1dd4b9b60e | ||
![]() |
07114ccb21 | ||
![]() |
c9557b2822 | ||
![]() |
fa8f02292e | ||
![]() |
7d64aa7f57 | ||
![]() |
853ceb3bec | ||
![]() |
e002b09d57 | ||
![]() |
408ac1a0c2 | ||
![]() |
5eba1217e7 | ||
![]() |
0cb6b3d80a | ||
![]() |
60ca6b1418 | ||
![]() |
9adaa6e240 | ||
![]() |
b7c990871f | ||
![]() |
0db1d11b2e | ||
![]() |
74f7fe2b98 | ||
![]() |
d2c5843c68 | ||
![]() |
78a21bbccf | ||
![]() |
2ce8587598 | ||
![]() |
a73fc31b50 | ||
![]() |
dde8e9e296 | ||
![]() |
bc27c370e7 | ||
![]() |
9e30152f3c | ||
![]() |
cc3f8d3732 | ||
![]() |
c8e1ac4049 | ||
![]() |
173695104c | ||
![]() |
ded783dd61 | ||
![]() |
2aa75d6272 | ||
![]() |
88a8701fb5 | ||
![]() |
b2a2e5f727 | ||
![]() |
b52c631bd3 | ||
![]() |
e7df66cc91 | ||
![]() |
36bd464e8c | ||
![]() |
39a335e690 | ||
![]() |
5141228e0c | ||
![]() |
48a0d83143 | ||
![]() |
ac36fda155 | ||
![]() |
df554e5f69 | ||
![]() |
54b8337813 | ||
![]() |
2e0f1f5113 | ||
![]() |
47c56dea5c | ||
![]() |
c270ab1e08 | ||
![]() |
2da377c582 | ||
![]() |
ae7e51382a | ||
![]() |
5c6db534d4 | ||
![]() |
c1bbbcd0dc | ||
![]() |
59eb132dcd | ||
![]() |
5815f727ee | ||
![]() |
4faff0debe | ||
![]() |
e36a40db10 | ||
![]() |
7559d2f105 | ||
![]() |
381bd94c6c | ||
![]() |
5406743102 | ||
![]() |
c8c0d659ec | ||
![]() |
8c244214bf | ||
![]() |
a5f1d318ac | ||
![]() |
82ed5a3a15 | ||
![]() |
3af6c180e4 | ||
![]() |
92816fa966 | ||
![]() |
ab49c14621 | ||
![]() |
2c07f7fff3 | ||
![]() |
9fb81c4246 | ||
![]() |
e7fd200237 | ||
![]() |
cc8a03b1d0 | ||
![]() |
9bb532672a | ||
![]() |
26c333325c | ||
![]() |
38c0531b52 | ||
![]() |
fb5b9370f3 | ||
![]() |
ffbd48c0c6 | ||
![]() |
95bcc9ea31 | ||
![]() |
2d6a943911 | ||
![]() |
9af499d8a4 | ||
![]() |
2e3d23c1d7 | ||
![]() |
dbbeac7174 | ||
![]() |
cf5cb673fb | ||
![]() |
b335cb6285 | ||
![]() |
9c047f170a | ||
![]() |
f31b4f29c1 | ||
![]() |
71c653f9e0 | ||
![]() |
29a8f92967 | ||
![]() |
ac9324aeaf | ||
![]() |
dc5adef255 | ||
![]() |
4b01b06f2f | ||
![]() |
bcab548617 | ||
![]() |
ec2b25565a | ||
![]() |
9ffb8920f1 | ||
![]() |
abe5935693 | ||
![]() |
8776031f96 | ||
![]() |
5eb05a0afe | ||
![]() |
2f36e044db | ||
![]() |
94dc9a0fa7 | ||
![]() |
8b11b86383 | ||
![]() |
f38f457a64 | ||
![]() |
ba27d29d58 | ||
![]() |
7132df529e | ||
![]() |
2535524132 | ||
![]() |
fda7bb0f09 | ||
![]() |
66f9048bce | ||
![]() |
fd05037e1a | ||
![]() |
6fb408d90e | ||
![]() |
362ab06023 | ||
![]() |
4b957e7373 | ||
![]() |
0957b74887 | ||
![]() |
270ed00d1f | ||
![]() |
4e1ef7804a | ||
![]() |
e4780d3956 | ||
![]() |
c183e35b5a | ||
![]() |
6f9e20a1bb | ||
![]() |
f9219e8608 | ||
![]() |
3b630d9998 | ||
![]() |
566ac11c65 | ||
![]() |
f5609d1d3c | ||
![]() |
e597b99b55 | ||
![]() |
ee627cd832 | ||
![]() |
4f97492d28 | ||
![]() |
07a565e6f7 | ||
![]() |
bf7da7ff10 | ||
![]() |
dba47d29d5 | ||
![]() |
8ac7519fd5 | ||
![]() |
edc1a24a90 | ||
![]() |
9563e2f75c | ||
![]() |
7f133a28b2 | ||
![]() |
4f3b1f19cb | ||
![]() |
89ee1cf9ee | ||
![]() |
a059ef90f8 | ||
![]() |
4077a81b34 | ||
![]() |
9a3f1a9703 | ||
![]() |
c2aabb2686 | ||
![]() |
c60a5f00c9 | ||
![]() |
0ba9d4ced7 | ||
![]() |
04e054465a | ||
![]() |
1519e9f911 | ||
![]() |
ebab35581c | ||
![]() |
7b9ae91e04 | ||
![]() |
47243176fa | ||
![]() |
5af828e3e6 | ||
![]() |
4636c20397 | ||
![]() |
9e12159230 | ||
![]() |
3d29083e60 | ||
![]() |
2ec0f3303a | ||
![]() |
ece06f125e | ||
![]() |
cd783358d3 | ||
![]() |
0b258cc054 | ||
![]() |
9e34c791c9 | ||
![]() |
7d55b4f95e | ||
![]() |
de4e3117eb | ||
![]() |
500079d265 | ||
![]() |
192288bc9c | ||
![]() |
d9c9415cfd | ||
![]() |
59370b6062 | ||
![]() |
6e5731bf2f | ||
![]() |
305cd1e730 | ||
![]() |
c23c0f7c14 | ||
![]() |
774c2e75ca | ||
![]() |
66d50b72e3 | ||
![]() |
89d86a7933 | ||
![]() |
7510bdc247 | ||
![]() |
f190d2e60e | ||
![]() |
206550a246 | ||
![]() |
db8a958991 | ||
![]() |
724ace0e99 | ||
![]() |
af31266b7d | ||
![]() |
2f81af6afa | ||
![]() |
61e179ee78 | ||
![]() |
c60540b196 | ||
![]() |
fefe9f5c0e | ||
![]() |
a773cb6527 | ||
![]() |
6408686973 | ||
![]() |
243698680a | ||
![]() |
d6db5a1fc2 | ||
![]() |
f78bd14e28 | ||
![]() |
dc3d77dacc | ||
![]() |
6877e7edbb | ||
![]() |
2e1613d4c6 | ||
![]() |
a08b95c497 | ||
![]() |
537b4c310a | ||
![]() |
4d5db61bd0 | ||
![]() |
4ab12f59a5 | ||
![]() |
40791fff64 | ||
![]() |
a53a4a23fd | ||
![]() |
b567c08e80 | ||
![]() |
0ca89b6fec | ||
![]() |
d7e46c187a | ||
![]() |
6aefe3e111 | ||
![]() |
03137a34db | ||
![]() |
c7d637ec39 | ||
![]() |
6087c4ad75 | ||
![]() |
cdf478c8f4 | ||
![]() |
80969a6347 | ||
![]() |
676d5d498c | ||
![]() |
9c1d49e312 | ||
![]() |
e682f7c0d6 | ||
![]() |
ca1e2316cf | ||
![]() |
0b8b524f12 | ||
![]() |
a350625554 | ||
![]() |
32e61f2620 | ||
![]() |
8388f66c4c | ||
![]() |
0937008648 | ||
![]() |
3a285f91bc | ||
![]() |
29a5778626 | ||
![]() |
53656f019a | ||
![]() |
cd190bee14 | ||
![]() |
2ee07ded2b | ||
![]() |
12606b575f | ||
![]() |
5f145f0c7e | ||
![]() |
13c40d4199 | ||
![]() |
13aae82635 | ||
![]() |
b85d035956 | ||
![]() |
47aa4613f7 | ||
![]() |
a9a5acb8ce | ||
![]() |
6dee59b789 | ||
![]() |
2e19d19216 | ||
![]() |
18a1de0de1 | ||
![]() |
9b57fcc6b0 | ||
![]() |
17878036d8 | ||
![]() |
2b1932a258 | ||
![]() |
fdc738fb70 | ||
![]() |
daea461f15 | ||
![]() |
a3d99217a4 | ||
![]() |
e0ab689ccd | ||
![]() |
7af69fd7b9 | ||
![]() |
49b67c8aaa | ||
![]() |
44d543ede3 | ||
![]() |
5ef4ee7760 | ||
![]() |
254c8743fc | ||
![]() |
ad4f4dbc7a | ||
![]() |
63f6a9b085 | ||
![]() |
4a2d5a146d | ||
![]() |
1efc26899d | ||
![]() |
8df246d0f3 | ||
![]() |
27524979e8 | ||
![]() |
dd30083c2b | ||
![]() |
fb4c5af5c4 | ||
![]() |
18ec49ddfa | ||
![]() |
5ec312ca06 | ||
![]() |
aebd24e414 | ||
![]() |
d72181c8c1 | ||
![]() |
c6fd13425b | ||
![]() |
bba8ba7a5b | ||
![]() |
47554a3428 | ||
![]() |
4b3dc415ef | ||
![]() |
930a00ad54 | ||
![]() |
34ebafb8b6 | ||
![]() |
becebf5d88 | ||
![]() |
f1e58e7c7f | ||
![]() |
f40abd92fa | ||
![]() |
f00f690658 | ||
![]() |
c4a2bfcb39 | ||
![]() |
153e2ba859 | ||
![]() |
cc90f2ba6b | ||
![]() |
d8f58fb7bf | ||
![]() |
a4786dda5a | ||
![]() |
aaa7f94139 | ||
![]() |
6b17a7110c | ||
![]() |
7080fed7ae | ||
![]() |
74f29ad09b | ||
![]() |
5f34ad523f | ||
![]() |
58236ead12 | ||
![]() |
8ae4d86a84 | ||
![]() |
3f0184ba2a | ||
![]() |
90473ea9ff | ||
![]() |
4e84e8ab3f | ||
![]() |
2e9180638e | ||
![]() |
058dfc20da | ||
![]() |
502fc3281c | ||
![]() |
77c850148a | ||
![]() |
df89aa0087 | ||
![]() |
792523b28b | ||
![]() |
f0a8182493 | ||
![]() |
6183d0be53 | ||
![]() |
7f6fc78f95 | ||
![]() |
abfbacf3d3 | ||
![]() |
b0c1d0f9cd | ||
![]() |
8b6fe845d4 | ||
![]() |
6ff32ee4d3 | ||
![]() |
2ff3b7d69c | ||
![]() |
9589de16db | ||
![]() |
2c3e5d943d | ||
![]() |
e2bb384a60 | ||
![]() |
e5985e0d63 | ||
![]() |
8832837a8a | ||
![]() |
f92130d878 | ||
![]() |
a5b0e0bef4 | ||
![]() |
e6e51b84ac | ||
![]() |
c5c3dfe10f | ||
![]() |
19ec4d8f17 | ||
![]() |
47ecd950b8 | ||
![]() |
051cc7ce71 | ||
![]() |
64e733f3d6 | ||
![]() |
017614c41a | ||
![]() |
0cfdb82ea4 | ||
![]() |
d5ed5da85c | ||
![]() |
8eb83029a8 | ||
![]() |
882d58abce | ||
![]() |
8de4401bb5 | ||
![]() |
f7a9b90eb9 | ||
![]() |
aa214f99b4 | ||
![]() |
4a25bbaed3 | ||
![]() |
583edc39b8 | ||
![]() |
212b2f651f | ||
![]() |
15ab96ecd6 | ||
![]() |
d71afb3d32 | ||
![]() |
4bf05d91a1 | ||
![]() |
de3afc1005 | ||
![]() |
2ea998f70e | ||
![]() |
e8fa3855e7 | ||
![]() |
34a6a24544 | ||
![]() |
1d8a0b06cb | ||
![]() |
50053a85d3 | ||
![]() |
f1cfb97237 | ||
![]() |
cb81ee9396 | ||
![]() |
b0e64deb27 | ||
![]() |
43d173b042 | ||
![]() |
1b152a2c4d | ||
![]() |
15cc3c0e23 | ||
![]() |
5904f80cfa | ||
![]() |
4d579c4387 | ||
![]() |
15d7313387 | ||
![]() |
6c84ea1412 | ||
![]() |
78c7dd53ef | ||
![]() |
a34bfa8269 | ||
![]() |
0425a30420 | ||
![]() |
1b23675f21 | ||
![]() |
836fbb9133 | ||
![]() |
c71729dfc4 | ||
![]() |
711ceb0109 | ||
![]() |
829c0a67af | ||
![]() |
fb5d9345a7 | ||
![]() |
95eb859b54 | ||
![]() |
257740b0cc | ||
![]() |
46d08d9404 | ||
![]() |
a7853057ab | ||
![]() |
eb282532dc | ||
![]() |
f2a3b3b4a1 | ||
![]() |
58e8b34633 | ||
![]() |
a02cea6e83 | ||
![]() |
708d7a2574 | ||
![]() |
6f4b5ab8d1 | ||
![]() |
634a9c162d | ||
![]() |
632ca2ef52 | ||
![]() |
24088f8307 | ||
![]() |
c892c0bab9 | ||
![]() |
78dac2fd48 | ||
![]() |
5ea8bba1a1 | ||
![]() |
a5e103a212 | ||
![]() |
e7ec0453b1 | ||
![]() |
1ebcb1d097 | ||
![]() |
fe04d024c7 | ||
![]() |
718966a81a | ||
![]() |
4f33eca634 | ||
![]() |
cc110c42e6 | ||
![]() |
897d8e662c | ||
![]() |
4a95af5290 | ||
![]() |
f28c8bc1c2 | ||
![]() |
1827b16ade | ||
![]() |
8b758c78a3 | ||
![]() |
8d2996eaaa | ||
![]() |
58efe21eca | ||
![]() |
71fcf48533 | ||
![]() |
921e328b56 | ||
![]() |
e62d4f622f | ||
![]() |
2cdc0719af | ||
![]() |
bdcdfaf6b4 | ||
![]() |
2b94742ca5 | ||
![]() |
d357744104 | ||
![]() |
d4225ec803 | ||
![]() |
de8521ae56 | ||
![]() |
bb066cf7d3 | ||
![]() |
556424d61b | ||
![]() |
92ae951ffa | ||
![]() |
973fa921cb | ||
![]() |
e0d615c264 | ||
![]() |
ef5672a902 | ||
![]() |
c0eddc9969 | ||
![]() |
fbb0e6499a | ||
![]() |
503d4c3e2f | ||
![]() |
cccb0d4064 | ||
![]() |
a144c986f2 | ||
![]() |
d62bfed65d | ||
![]() |
77b129ec74 | ||
![]() |
3024239e40 | ||
![]() |
5ccf583b8a | ||
![]() |
80cbaf6d38 | ||
![]() |
448419990c | ||
![]() |
7baa9a570d | ||
![]() |
bf9c8771a4 | ||
![]() |
5e84f38f31 | ||
![]() |
8fe122d675 | ||
![]() |
74c47f1f12 | ||
![]() |
fa5ca8af81 | ||
![]() |
b45d88e124 | ||
![]() |
bc4cbd775b | ||
![]() |
a29777f467 | ||
![]() |
bce87922c0 | ||
![]() |
81876d5c1b | ||
![]() |
7f0aa49f45 | ||
![]() |
5aaa3e93c1 | ||
![]() |
ec2e3b260e | ||
![]() |
26914abe62 | ||
![]() |
950b818274 | ||
![]() |
defe19fdf6 | ||
![]() |
409e4936af | ||
![]() |
10b39d7591 | ||
![]() |
194ed19557 | ||
![]() |
877fc9f352 | ||
![]() |
64258a2c2a | ||
![]() |
c520672982 | ||
![]() |
9374c3ce81 | ||
![]() |
4d56b34096 | ||
![]() |
66382b2861 | ||
![]() |
1fab5892b5 | ||
![]() |
c898f7a6bf | ||
![]() |
7659790923 | ||
![]() |
ecf34783ef | ||
![]() |
68370feeee | ||
![]() |
574c83e47f | ||
![]() |
e6a5801155 | ||
![]() |
d90efd7704 | ||
![]() |
9fe5a87785 | ||
![]() |
7f1608dc77 | ||
![]() |
f4c5dec05d | ||
![]() |
7c1903e1ee | ||
![]() |
51b7e3119b | ||
![]() |
a009b39e4c | ||
![]() |
1d3e99f475 | ||
![]() |
9aa2eff384 | ||
![]() |
ee2f14eaf0 | ||
![]() |
553ea36ca6 | ||
![]() |
6586e90acf | ||
![]() |
ea04f40eb3 | ||
![]() |
f9b6f8fd45 | ||
![]() |
1b1a2115fa | ||
![]() |
65908647e3 | ||
![]() |
81e2499d19 | ||
![]() |
195a5cf996 | ||
![]() |
bc97a3d1f9 | ||
![]() |
702cff636f | ||
![]() |
780e11b7e2 | ||
![]() |
4126435663 | ||
![]() |
d107a2cfdf | ||
![]() |
38a8a48a25 | ||
![]() |
77bf148460 | ||
![]() |
533ac4fd95 | ||
![]() |
7049f1cbfc | ||
![]() |
fa3eed1998 | ||
![]() |
454b6d608e | ||
![]() |
6add186867 | ||
![]() |
cd25e36811 |
12
.dockerignore
Normal file
12
.dockerignore
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# Folders
|
||||||
|
.git/
|
||||||
|
.github/
|
||||||
|
changelog/
|
||||||
|
doc/
|
||||||
|
docker/
|
||||||
|
helpers/
|
||||||
|
|
||||||
|
# Files
|
||||||
|
.gitignore
|
||||||
|
.golangci.yml
|
||||||
|
*.md
|
2
.gitattributes
vendored
Normal file
2
.gitattributes
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
# Workaround for https://github.com/golang/go/issues/52268.
|
||||||
|
**/testdata/fuzz/*/* eol=lf
|
13
.github/dependabot.yml
vendored
Normal file
13
.github/dependabot.yml
vendored
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
version: 2
|
||||||
|
updates:
|
||||||
|
# Dependencies listed in go.mod
|
||||||
|
- package-ecosystem: "gomod"
|
||||||
|
directory: "/" # Location of package manifests
|
||||||
|
schedule:
|
||||||
|
interval: "weekly"
|
||||||
|
|
||||||
|
# Dependencies listed in .github/workflows/*.yml
|
||||||
|
- package-ecosystem: "github-actions"
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: "weekly"
|
126
.github/workflows/tests.yml
vendored
126
.github/workflows/tests.yml
vendored
@@ -8,6 +8,10 @@ on:
|
|||||||
# run tests for all pull requests
|
# run tests for all pull requests
|
||||||
pull_request:
|
pull_request:
|
||||||
|
|
||||||
|
env:
|
||||||
|
latest_go: "1.19.x"
|
||||||
|
GO111MODULE: on
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
test:
|
test:
|
||||||
strategy:
|
strategy:
|
||||||
@@ -15,33 +19,29 @@ jobs:
|
|||||||
# list of jobs to run:
|
# list of jobs to run:
|
||||||
include:
|
include:
|
||||||
- job_name: Windows
|
- job_name: Windows
|
||||||
go: 1.16.x
|
go: 1.19.x
|
||||||
os: windows-latest
|
os: windows-latest
|
||||||
|
|
||||||
- job_name: macOS
|
- job_name: macOS
|
||||||
go: 1.16.x
|
go: 1.19.x
|
||||||
os: macOS-latest
|
os: macOS-latest
|
||||||
test_fuse: false
|
test_fuse: false
|
||||||
|
|
||||||
- job_name: Linux
|
- job_name: Linux
|
||||||
go: 1.16.x
|
go: 1.19.x
|
||||||
os: ubuntu-latest
|
os: ubuntu-latest
|
||||||
test_cloud_backends: true
|
test_cloud_backends: true
|
||||||
test_fuse: true
|
test_fuse: true
|
||||||
check_changelog: true
|
check_changelog: true
|
||||||
|
|
||||||
- job_name: Linux
|
- job_name: Linux (race)
|
||||||
go: 1.15.x
|
go: 1.19.x
|
||||||
os: ubuntu-latest
|
os: ubuntu-latest
|
||||||
test_fuse: true
|
test_fuse: true
|
||||||
|
test_opts: "-race"
|
||||||
|
|
||||||
- job_name: Linux
|
- job_name: Linux
|
||||||
go: 1.14.x
|
go: 1.18.x
|
||||||
os: ubuntu-latest
|
|
||||||
test_fuse: true
|
|
||||||
|
|
||||||
- job_name: Linux
|
|
||||||
go: 1.13.x
|
|
||||||
os: ubuntu-latest
|
os: ubuntu-latest
|
||||||
test_fuse: true
|
test_fuse: true
|
||||||
|
|
||||||
@@ -53,14 +53,14 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Set up Go ${{ matrix.go }}
|
- name: Set up Go ${{ matrix.go }}
|
||||||
uses: actions/setup-go@v2
|
uses: actions/setup-go@v3
|
||||||
with:
|
with:
|
||||||
go-version: ${{ matrix.go }}
|
go-version: ${{ matrix.go }}
|
||||||
|
|
||||||
- name: Get programs (Linux/macOS)
|
- name: Get programs (Linux/macOS)
|
||||||
run: |
|
run: |
|
||||||
echo "build Go tools"
|
echo "build Go tools"
|
||||||
go get github.com/restic/rest-server/...
|
go install github.com/restic/rest-server/cmd/rest-server@latest
|
||||||
|
|
||||||
echo "install minio server"
|
echo "install minio server"
|
||||||
mkdir $HOME/bin
|
mkdir $HOME/bin
|
||||||
@@ -82,7 +82,7 @@ jobs:
|
|||||||
chmod 755 $HOME/bin/rclone
|
chmod 755 $HOME/bin/rclone
|
||||||
rm -rf rclone*
|
rm -rf rclone*
|
||||||
|
|
||||||
# add $HOME/bin to path ($GOBIN was already added to the path by setup-go@v2)
|
# add $HOME/bin to path ($GOBIN was already added to the path by setup-go@v3)
|
||||||
echo $HOME/bin >> $GITHUB_PATH
|
echo $HOME/bin >> $GITHUB_PATH
|
||||||
if: matrix.os == 'ubuntu-latest' || matrix.os == 'macOS-latest'
|
if: matrix.os == 'ubuntu-latest' || matrix.os == 'macOS-latest'
|
||||||
|
|
||||||
@@ -92,7 +92,7 @@ jobs:
|
|||||||
$ProgressPreference = 'SilentlyContinue'
|
$ProgressPreference = 'SilentlyContinue'
|
||||||
|
|
||||||
echo "build Go tools"
|
echo "build Go tools"
|
||||||
go get github.com/restic/rest-server/...
|
go install github.com/restic/rest-server/...
|
||||||
|
|
||||||
echo "install minio server"
|
echo "install minio server"
|
||||||
mkdir $Env:USERPROFILE/bin
|
mkdir $Env:USERPROFILE/bin
|
||||||
@@ -104,7 +104,7 @@ jobs:
|
|||||||
unzip rclone.zip
|
unzip rclone.zip
|
||||||
copy rclone*/rclone.exe $Env:USERPROFILE/bin
|
copy rclone*/rclone.exe $Env:USERPROFILE/bin
|
||||||
|
|
||||||
# add $USERPROFILE/bin to path ($GOBIN was already added to the path by setup-go@v2)
|
# add $USERPROFILE/bin to path ($GOBIN was already added to the path by setup-go@v3)
|
||||||
echo $Env:USERPROFILE\bin >> $Env:GITHUB_PATH
|
echo $Env:USERPROFILE\bin >> $Env:GITHUB_PATH
|
||||||
|
|
||||||
echo "install tar"
|
echo "install tar"
|
||||||
@@ -126,7 +126,7 @@ jobs:
|
|||||||
if: matrix.os == 'windows-latest'
|
if: matrix.os == 'windows-latest'
|
||||||
|
|
||||||
- name: Check out code
|
- name: Check out code
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Build with build.go
|
- name: Build with build.go
|
||||||
run: |
|
run: |
|
||||||
@@ -136,7 +136,7 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
RESTIC_TEST_FUSE: ${{ matrix.test_fuse }}
|
RESTIC_TEST_FUSE: ${{ matrix.test_fuse }}
|
||||||
run: |
|
run: |
|
||||||
go test -cover ./...
|
go test -cover ${{matrix.test_opts}} ./...
|
||||||
|
|
||||||
- name: Test cloud backends
|
- name: Test cloud backends
|
||||||
env:
|
env:
|
||||||
@@ -177,12 +177,14 @@ jobs:
|
|||||||
|
|
||||||
# only run cloud backend tests for pull requests from and pushes to our
|
# only run cloud backend tests for pull requests from and pushes to our
|
||||||
# own repo, otherwise the secrets are not available
|
# own repo, otherwise the secrets are not available
|
||||||
if: (github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository) && matrix.test_cloud_backends
|
# Skip for Dependabot pull requests as these are run without secrets
|
||||||
|
# https://docs.github.com/en/code-security/dependabot/working-with-dependabot/automating-dependabot-with-github-actions#responding-to-events
|
||||||
|
if: (github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository) && (github.actor != 'dependabot[bot]') && matrix.test_cloud_backends
|
||||||
|
|
||||||
- name: Check changelog files with calens
|
- name: Check changelog files with calens
|
||||||
run: |
|
run: |
|
||||||
echo "install calens"
|
echo "install calens"
|
||||||
go get github.com/restic/calens
|
go install github.com/restic/calens@latest
|
||||||
|
|
||||||
echo "check changelog files"
|
echo "check changelog files"
|
||||||
calens
|
calens
|
||||||
@@ -193,20 +195,20 @@ jobs:
|
|||||||
|
|
||||||
# ATTENTION: the list of architectures must be in sync with helpers/build-release-binaries/main.go!
|
# ATTENTION: the list of architectures must be in sync with helpers/build-release-binaries/main.go!
|
||||||
matrix:
|
matrix:
|
||||||
# run cross-compile in two batches parallel so the overall tests run faster
|
# run cross-compile in three batches parallel so the overall tests run faster
|
||||||
targets:
|
targets:
|
||||||
- "linux/386 linux/amd64 linux/arm linux/arm64 linux/ppc64le linux/mips linux/mipsle linux/mips64 linux/mips64le linux/s390x \
|
- "linux/386 linux/amd64 linux/arm linux/arm64 linux/ppc64le linux/mips linux/mipsle linux/mips64 linux/mips64le linux/s390x"
|
||||||
openbsd/386 openbsd/amd64"
|
|
||||||
|
|
||||||
- "freebsd/386 freebsd/amd64 freebsd/arm \
|
- "openbsd/386 openbsd/amd64 \
|
||||||
|
freebsd/386 freebsd/amd64 freebsd/arm \
|
||||||
aix/ppc64 \
|
aix/ppc64 \
|
||||||
darwin/amd64 darwin/arm64 \
|
darwin/amd64 darwin/arm64"
|
||||||
netbsd/386 netbsd/amd64 \
|
|
||||||
|
- "netbsd/386 netbsd/amd64 \
|
||||||
windows/386 windows/amd64 \
|
windows/386 windows/amd64 \
|
||||||
solaris/amd64"
|
solaris/amd64"
|
||||||
|
|
||||||
env:
|
env:
|
||||||
go: 1.16.x
|
|
||||||
GOPROXY: https://proxy.golang.org
|
GOPROXY: https://proxy.golang.org
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -214,17 +216,17 @@ jobs:
|
|||||||
name: Cross Compile for ${{ matrix.targets }}
|
name: Cross Compile for ${{ matrix.targets }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Set up Go ${{ env.go }}
|
- name: Set up Go ${{ env.latest_go }}
|
||||||
uses: actions/setup-go@v2
|
uses: actions/setup-go@v3
|
||||||
with:
|
with:
|
||||||
go-version: ${{ env.go }}
|
go-version: ${{ env.latest_go }}
|
||||||
|
|
||||||
- name: Check out code
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- name: Install gox
|
- name: Install gox
|
||||||
run: |
|
run: |
|
||||||
go get github.com/mitchellh/gox
|
go install github.com/mitchellh/gox@latest
|
||||||
|
|
||||||
|
- name: Check out code
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Cross-compile with gox for ${{ matrix.targets }}
|
- name: Cross-compile with gox for ${{ matrix.targets }}
|
||||||
env:
|
env:
|
||||||
@@ -238,26 +240,23 @@ jobs:
|
|||||||
lint:
|
lint:
|
||||||
name: lint
|
name: lint
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
env:
|
|
||||||
go: 1.16.x
|
|
||||||
steps:
|
steps:
|
||||||
- name: Set up Go ${{ env.go }}
|
- name: Set up Go ${{ env.latest_go }}
|
||||||
uses: actions/setup-go@v2
|
uses: actions/setup-go@v3
|
||||||
with:
|
with:
|
||||||
go-version: ${{ env.go }}
|
go-version: ${{ env.latest_go }}
|
||||||
|
|
||||||
- name: Check out code
|
- name: Check out code
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: golangci-lint
|
- name: golangci-lint
|
||||||
uses: golangci/golangci-lint-action@v2
|
uses: golangci/golangci-lint-action@v3
|
||||||
with:
|
with:
|
||||||
# Required: the version of golangci-lint is required and must be specified without patch version: we always use the latest patch version.
|
# Required: the version of golangci-lint is required and must be specified without patch version: we always use the latest patch version.
|
||||||
version: v1.36
|
version: v1.49
|
||||||
# Optional: show only new issues if it's a pull request. The default value is `false`.
|
# Optional: show only new issues if it's a pull request. The default value is `false`.
|
||||||
only-new-issues: true
|
only-new-issues: true
|
||||||
args: --verbose --timeout 5m
|
args: --verbose --timeout 5m
|
||||||
skip-go-installation: true
|
|
||||||
|
|
||||||
# only run golangci-lint for pull requests, otherwise ALL hints get
|
# only run golangci-lint for pull requests, otherwise ALL hints get
|
||||||
# reported. We need to slowly address all issues until we can enable
|
# reported. We need to slowly address all issues until we can enable
|
||||||
@@ -269,3 +268,44 @@ jobs:
|
|||||||
echo "check if go.mod and go.sum are up to date"
|
echo "check if go.mod and go.sum are up to date"
|
||||||
go mod tidy
|
go mod tidy
|
||||||
git diff --exit-code go.mod go.sum
|
git diff --exit-code go.mod go.sum
|
||||||
|
|
||||||
|
docker:
|
||||||
|
name: docker
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Check out code
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Docker meta
|
||||||
|
id: meta
|
||||||
|
uses: docker/metadata-action@v4
|
||||||
|
with:
|
||||||
|
# list of Docker images to use as base name for tags
|
||||||
|
images: |
|
||||||
|
restic/restic
|
||||||
|
# generate Docker tags based on the following events/attributes
|
||||||
|
tags: |
|
||||||
|
type=schedule
|
||||||
|
type=ref,event=branch
|
||||||
|
type=ref,event=pr
|
||||||
|
type=semver,pattern={{version}}
|
||||||
|
type=semver,pattern={{major}}.{{minor}}
|
||||||
|
type=semver,pattern={{major}}
|
||||||
|
type=sha
|
||||||
|
|
||||||
|
- name: Set up QEMU
|
||||||
|
uses: docker/setup-qemu-action@v2
|
||||||
|
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v2
|
||||||
|
|
||||||
|
- name: Build and push
|
||||||
|
id: docker_build
|
||||||
|
uses: docker/build-push-action@v3
|
||||||
|
with:
|
||||||
|
push: false
|
||||||
|
context: .
|
||||||
|
file: docker/Dockerfile
|
||||||
|
pull: true
|
||||||
|
tags: ${{ steps.meta.outputs.tags }}
|
||||||
|
labels: ${{ steps.meta.outputs.labels }}
|
||||||
|
@@ -24,7 +24,7 @@ linters:
|
|||||||
- govet
|
- govet
|
||||||
|
|
||||||
# make sure names and comments are used according to the conventions
|
# make sure names and comments are used according to the conventions
|
||||||
- golint
|
- revive
|
||||||
|
|
||||||
# detect when assignments to existing variables are not used
|
# detect when assignments to existing variables are not used
|
||||||
- ineffassign
|
- ineffassign
|
||||||
@@ -51,7 +51,9 @@ issues:
|
|||||||
|
|
||||||
# list of things to not warn about
|
# list of things to not warn about
|
||||||
exclude:
|
exclude:
|
||||||
# golint: do not warn about missing comments for exported stuff
|
# revive: do not warn about missing comments for exported stuff
|
||||||
- exported (function|method|var|type|const) `.*` should have comment or be unexported
|
- exported (function|method|var|type|const) .* should have comment or be unexported
|
||||||
# golint: ignore constants in all caps
|
# revive: ignore constants in all caps
|
||||||
- don't use ALL_CAPS in Go names; use CamelCase
|
- don't use ALL_CAPS in Go names; use CamelCase
|
||||||
|
# revive: lots of packages don't have such a comment
|
||||||
|
- "package-comments: should have a package comment"
|
||||||
|
2845
CHANGELOG.md
2845
CHANGELOG.md
File diff suppressed because it is too large
Load Diff
@@ -48,9 +48,8 @@ environment was used and so on. Please tell us at least the following things:
|
|||||||
Remember, the easier it is for us to reproduce the bug, the earlier it will be
|
Remember, the easier it is for us to reproduce the bug, the earlier it will be
|
||||||
corrected!
|
corrected!
|
||||||
|
|
||||||
In addition, you can compile restic with debug support by running
|
In addition, you can instruct restic to create a debug log by setting the
|
||||||
`go run build.go -tags debug` and instructing it to create a debug
|
environment variable `DEBUG_LOG` to a file, e.g. like this:
|
||||||
log by setting the environment variable `DEBUG_LOG` to a file, e.g. like this:
|
|
||||||
|
|
||||||
$ export DEBUG_LOG=/tmp/restic-debug.log
|
$ export DEBUG_LOG=/tmp/restic-debug.log
|
||||||
$ restic backup ~/work
|
$ restic backup ~/work
|
||||||
@@ -66,8 +65,8 @@ Development Environment
|
|||||||
The repository contains the code written for restic in the directories
|
The repository contains the code written for restic in the directories
|
||||||
`cmd/` and `internal/`.
|
`cmd/` and `internal/`.
|
||||||
|
|
||||||
Restic requires Go version 1.13 or later for compiling. Clone the repo (without
|
Make sure you have the minimum required Go version installed. Clone the repo
|
||||||
having `$GOPATH` set) and `cd` into the directory:
|
(without having `$GOPATH` set) and `cd` into the directory:
|
||||||
|
|
||||||
$ unset GOPATH
|
$ unset GOPATH
|
||||||
$ git clone https://github.com/restic/restic
|
$ git clone https://github.com/restic/restic
|
||||||
@@ -77,7 +76,7 @@ Then use the `go` tool to build restic:
|
|||||||
|
|
||||||
$ go build ./cmd/restic
|
$ go build ./cmd/restic
|
||||||
$ ./restic version
|
$ ./restic version
|
||||||
restic 0.10.0-dev (compiled manually) compiled with go1.15.2 on linux/amd64
|
restic 0.14.0-dev (compiled manually) compiled with go1.19 on linux/amd64
|
||||||
|
|
||||||
You can run all tests with the following command:
|
You can run all tests with the following command:
|
||||||
|
|
||||||
@@ -123,7 +122,10 @@ down to the following steps:
|
|||||||
writing, ask yourself: If I were the user, what would I need to be aware
|
writing, ask yourself: If I were the user, what would I need to be aware
|
||||||
of with this change?
|
of with this change?
|
||||||
|
|
||||||
8. Once your code looks good and passes all the tests, we'll merge it. Thanks
|
8. Do not edit the man pages under `doc/man` or `doc/manual_rest.rst` -
|
||||||
|
these are autogenerated before new releases.
|
||||||
|
|
||||||
|
9. Once your code looks good and passes all the tests, we'll merge it. Thanks
|
||||||
a lot for your contribution!
|
a lot for your contribution!
|
||||||
|
|
||||||
Please provide the patches for each bug or feature in a separate branch and
|
Please provide the patches for each bug or feature in a separate branch and
|
||||||
|
@@ -46,8 +46,8 @@ Therefore, restic supports the following backends for storing backups natively:
|
|||||||
|
|
||||||
- [Local directory](https://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html#local)
|
- [Local directory](https://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html#local)
|
||||||
- [sftp server (via SSH)](https://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html#sftp)
|
- [sftp server (via SSH)](https://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html#sftp)
|
||||||
- [HTTP REST server](https://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html#rest-server) ([protocol](doc/100_references.rst#rest-backend), [rest-server](https://github.com/restic/rest-server))
|
- [HTTP REST server](https://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html#rest-server) ([protocol](https://restic.readthedocs.io/en/latest/100_references.html#rest-backend), [rest-server](https://github.com/restic/rest-server))
|
||||||
- [AWS S3](https://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html#amazon-s3) (either from Amazon or using the [Minio](https://minio.io) server)
|
- [Amazon S3](https://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html#amazon-s3) (either from Amazon or using the [Minio](https://minio.io) server)
|
||||||
- [OpenStack Swift](https://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html#openstack-swift)
|
- [OpenStack Swift](https://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html#openstack-swift)
|
||||||
- [BackBlaze B2](https://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html#backblaze-b2)
|
- [BackBlaze B2](https://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html#backblaze-b2)
|
||||||
- [Microsoft Azure Blob Storage](https://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html#microsoft-azure-blob-storage)
|
- [Microsoft Azure Blob Storage](https://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html#microsoft-azure-blob-storage)
|
||||||
|
29
build.go
29
build.go
@@ -3,8 +3,8 @@
|
|||||||
// This program aims to make building Go programs for end users easier by just
|
// This program aims to make building Go programs for end users easier by just
|
||||||
// calling it with `go run`, without having to setup a GOPATH.
|
// calling it with `go run`, without having to setup a GOPATH.
|
||||||
//
|
//
|
||||||
// This program needs Go >= 1.12. It'll use Go modules for compilation. It
|
// This program checks for a minimum Go version. It will use Go modules for
|
||||||
// builds the package configured as Main in the Config struct.
|
// compilation. It builds the package configured as Main in the Config struct.
|
||||||
|
|
||||||
// BSD 2-Clause License
|
// BSD 2-Clause License
|
||||||
//
|
//
|
||||||
@@ -35,6 +35,7 @@
|
|||||||
// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
//go:build ignore_build_go
|
||||||
// +build ignore_build_go
|
// +build ignore_build_go
|
||||||
|
|
||||||
package main
|
package main
|
||||||
@@ -42,7 +43,6 @@ package main
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"io/ioutil"
|
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
@@ -58,7 +58,7 @@ var config = Config{
|
|||||||
Main: "./cmd/restic", // package name for the main package
|
Main: "./cmd/restic", // package name for the main package
|
||||||
DefaultBuildTags: []string{"selfupdate"}, // specify build tags which are always used
|
DefaultBuildTags: []string{"selfupdate"}, // specify build tags which are always used
|
||||||
Tests: []string{"./..."}, // tests to run
|
Tests: []string{"./..."}, // tests to run
|
||||||
MinVersion: GoVersion{Major: 1, Minor: 11, Patch: 0}, // minimum Go version supported
|
MinVersion: GoVersion{Major: 1, Minor: 18, Patch: 0}, // minimum Go version supported
|
||||||
}
|
}
|
||||||
|
|
||||||
// Config configures the build.
|
// Config configures the build.
|
||||||
@@ -123,17 +123,8 @@ func printEnv(env []string) {
|
|||||||
|
|
||||||
// build runs "go build args..." with GOPATH set to gopath.
|
// build runs "go build args..." with GOPATH set to gopath.
|
||||||
func build(cwd string, env map[string]string, args ...string) error {
|
func build(cwd string, env map[string]string, args ...string) error {
|
||||||
a := []string{"build"}
|
// -trimpath removes all absolute paths from the binary.
|
||||||
|
a := []string{"build", "-trimpath"}
|
||||||
// try to remove all absolute paths from resulting binary
|
|
||||||
if goVersion.AtLeast(GoVersion{1, 13, 0}) {
|
|
||||||
// use the new flag introduced by Go 1.13
|
|
||||||
a = append(a, "-trimpath")
|
|
||||||
} else {
|
|
||||||
// otherwise try to trim as many paths as possible
|
|
||||||
a = append(a, "-asmflags", fmt.Sprintf("all=-trimpath=%s", cwd))
|
|
||||||
a = append(a, "-gcflags", fmt.Sprintf("all=-trimpath=%s", cwd))
|
|
||||||
}
|
|
||||||
|
|
||||||
if enablePIE {
|
if enablePIE {
|
||||||
a = append(a, "-buildmode=pie")
|
a = append(a, "-buildmode=pie")
|
||||||
@@ -187,7 +178,7 @@ func test(cwd string, env map[string]string, args ...string) error {
|
|||||||
// getVersion returns the version string from the file VERSION in the current
|
// getVersion returns the version string from the file VERSION in the current
|
||||||
// directory.
|
// directory.
|
||||||
func getVersionFromFile() string {
|
func getVersionFromFile() string {
|
||||||
buf, err := ioutil.ReadFile("VERSION")
|
buf, err := os.ReadFile("VERSION")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
verbosePrintf("error reading file VERSION: %v\n", err)
|
verbosePrintf("error reading file VERSION: %v\n", err)
|
||||||
return ""
|
return ""
|
||||||
@@ -327,12 +318,8 @@ func (v GoVersion) String() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
if !goVersion.AtLeast(GoVersion{1, 12, 0}) {
|
|
||||||
die("Go version (%v) is too old, restic requires Go >= 1.12\n", goVersion)
|
|
||||||
}
|
|
||||||
|
|
||||||
if !goVersion.AtLeast(config.MinVersion) {
|
if !goVersion.AtLeast(config.MinVersion) {
|
||||||
fmt.Fprintf(os.Stderr, "%s detected, this program requires at least %s\n", goVersion, config.MinVersion)
|
fmt.Fprintf(os.Stderr, "Detected version %s is too old, restic requires at least %s\n", goVersion, config.MinVersion)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
10
changelog/0.13.0_2022-03-26/issue-1106
Normal file
10
changelog/0.13.0_2022-03-26/issue-1106
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Bugfix: Never lock repository for `list locks`
|
||||||
|
|
||||||
|
The `list locks` command previously locked to the repository by default. This
|
||||||
|
had the problem that it wouldn't work for an exclusively locked repository and
|
||||||
|
that the command would also display its own lock file which can be confusing.
|
||||||
|
|
||||||
|
Now, the `list locks` command never locks the repository.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/1106
|
||||||
|
https://github.com/restic/restic/pull/3665
|
16
changelog/0.13.0_2022-03-26/issue-1542
Normal file
16
changelog/0.13.0_2022-03-26/issue-1542
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
Enhancement: Add `--dry-run`/`-n` option to `backup` command
|
||||||
|
|
||||||
|
Testing exclude filters and other configuration options was error prone as
|
||||||
|
wrong filters could cause files to be uploaded unintentionally. It was also
|
||||||
|
not possible to estimate beforehand how much data would be uploaded.
|
||||||
|
|
||||||
|
The `backup` command now has a `--dry-run`/`-n` option, which performs all the
|
||||||
|
normal steps of a backup without actually writing anything to the repository.
|
||||||
|
|
||||||
|
Passing -vv will log information about files that would be added, allowing for
|
||||||
|
verification of source and exclusion options before running the real backup.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/1542
|
||||||
|
https://github.com/restic/restic/pull/2308
|
||||||
|
https://github.com/restic/restic/pull/3210
|
||||||
|
https://github.com/restic/restic/pull/3300
|
15
changelog/0.13.0_2022-03-26/issue-2202
Normal file
15
changelog/0.13.0_2022-03-26/issue-2202
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
Enhancement: Add upload checksum for Azure, GS, S3 and Swift backends
|
||||||
|
|
||||||
|
Previously only the B2 and partially the Swift backends verified the integrity
|
||||||
|
of uploaded (encrypted) files. The verification works by informing the backend
|
||||||
|
about the expected hash of the uploaded file. The backend then verifies the
|
||||||
|
upload and thereby rules out any data corruption during upload.
|
||||||
|
|
||||||
|
We have now added upload checksums for the Azure, GS, S3 and Swift backends,
|
||||||
|
which besides integrity checking for uploads also means that restic can now be
|
||||||
|
used to store backups in S3 buckets which have Object Lock enabled.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/2202
|
||||||
|
https://github.com/restic/restic/issues/2700
|
||||||
|
https://github.com/restic/restic/issues/3023
|
||||||
|
https://github.com/restic/restic/pull/3246
|
29
changelog/0.13.0_2022-03-26/issue-233
Normal file
29
changelog/0.13.0_2022-03-26/issue-233
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
Enhancement: Support negative include/exclude patterns
|
||||||
|
|
||||||
|
If a pattern starts with an exclamation mark and it matches a file that was
|
||||||
|
previously matched by a regular pattern, the match is cancelled. Notably,
|
||||||
|
this can be used with `--exclude-file` to cancel the exclusion of some files.
|
||||||
|
|
||||||
|
It works similarly to `.gitignore`, with the same limitation; Once a directory
|
||||||
|
is excluded, it is not possible to include files inside the directory.
|
||||||
|
|
||||||
|
Example of use as an exclude pattern for the `backup` command:
|
||||||
|
|
||||||
|
$HOME/**/*
|
||||||
|
!$HOME/Documents
|
||||||
|
!$HOME/code
|
||||||
|
!$HOME/.emacs.d
|
||||||
|
!$HOME/games
|
||||||
|
# [...]
|
||||||
|
node_modules
|
||||||
|
*~
|
||||||
|
*.o
|
||||||
|
*.lo
|
||||||
|
*.pyc
|
||||||
|
# [...]
|
||||||
|
$HOME/code/linux/*
|
||||||
|
!$HOME/code/linux/.git
|
||||||
|
# [...]
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/233
|
||||||
|
https://github.com/restic/restic/pull/2311
|
13
changelog/0.13.0_2022-03-26/issue-2345
Normal file
13
changelog/0.13.0_2022-03-26/issue-2345
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
Bugfix: Make cache crash-resistant and usable by multiple concurrent processes
|
||||||
|
|
||||||
|
The restic cache directory (`RESTIC_CACHE_DIR`) could end up in a broken state
|
||||||
|
in the event of restic (or the OS) crashing. This is now less likely to occur
|
||||||
|
as files are downloaded to a temporary location before being moved to their
|
||||||
|
proper location.
|
||||||
|
|
||||||
|
This also allows multiple concurrent restic processes to operate on a single
|
||||||
|
repository without conflicts. Previously, concurrent operations could cause
|
||||||
|
segfaults because the processes saw each other's partially downloaded files.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/2345
|
||||||
|
https://github.com/restic/restic/pull/2838
|
10
changelog/0.13.0_2022-03-26/issue-2388
Normal file
10
changelog/0.13.0_2022-03-26/issue-2388
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Enhancement: Add warning for S3 if partial credentials are provided
|
||||||
|
|
||||||
|
Previously restic did not notify about incomplete credentials when using the
|
||||||
|
S3 backend, instead just reporting access denied.
|
||||||
|
|
||||||
|
Restic now checks that both the AWS key ID and secret environment variables are
|
||||||
|
set before connecting to the remote server, and reports an error if not.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/2388
|
||||||
|
https://github.com/restic/restic/pull/3532
|
11
changelog/0.13.0_2022-03-26/issue-2452
Normal file
11
changelog/0.13.0_2022-03-26/issue-2452
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
Bugfix: Improve error handling of repository locking
|
||||||
|
|
||||||
|
Previously, when the lock refresh failed to delete the old lock file, it forgot
|
||||||
|
about the newly created one. Instead it continued trying to delete the old
|
||||||
|
(usually no longer existing) lock file and thus over time lots of lock files
|
||||||
|
accumulated. This has now been fixed.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/2452
|
||||||
|
https://github.com/restic/restic/issues/2473
|
||||||
|
https://github.com/restic/restic/issues/2562
|
||||||
|
https://github.com/restic/restic/pull/3512
|
8
changelog/0.13.0_2022-03-26/issue-2508
Normal file
8
changelog/0.13.0_2022-03-26/issue-2508
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Enhancement: Support JSON output and quiet mode for the `diff` command
|
||||||
|
|
||||||
|
The `diff` command now supports outputting machine-readable output in JSON
|
||||||
|
format. To enable this, pass the `--json` option to the command. To only print
|
||||||
|
the summary and suppress detailed output, pass the `--quiet` option.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/2508
|
||||||
|
https://github.com/restic/restic/pull/3592
|
8
changelog/0.13.0_2022-03-26/issue-2656
Normal file
8
changelog/0.13.0_2022-03-26/issue-2656
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Enhancement: Add flag to disable TLS verification for self-signed certificates
|
||||||
|
|
||||||
|
There is now an `--insecure-tls` global option in restic, which disables TLS
|
||||||
|
verification for self-signed certificates in order to support some development
|
||||||
|
workflows.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/2656
|
||||||
|
https://github.com/restic/restic/pull/2657
|
8
changelog/0.13.0_2022-03-26/issue-2738
Normal file
8
changelog/0.13.0_2022-03-26/issue-2738
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Bugfix: Don't print progress for `backup --json --quiet`
|
||||||
|
|
||||||
|
Unlike the text output, the `--json` output format still printed progress
|
||||||
|
information even in `--quiet` mode. This has now been fixed by always
|
||||||
|
disabling the progress output in quiet mode.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/2738
|
||||||
|
https://github.com/restic/restic/pull/3264
|
9
changelog/0.13.0_2022-03-26/issue-3003
Normal file
9
changelog/0.13.0_2022-03-26/issue-3003
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Enhancement: Atomic uploads for the SFTP backend
|
||||||
|
|
||||||
|
The SFTP backend did not upload files atomically. An interrupted upload could
|
||||||
|
leave an incomplete file behind which could prevent restic from accessing the
|
||||||
|
repository. This has now been fixed and uploads in the SFTP backend are done
|
||||||
|
atomically.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3003
|
||||||
|
https://github.com/restic/restic/pull/3524
|
6
changelog/0.13.0_2022-03-26/issue-3127
Normal file
6
changelog/0.13.0_2022-03-26/issue-3127
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
Enhancement: Add xattr (extended attributes) support for Solaris
|
||||||
|
|
||||||
|
Restic now supports xattr for the Solaris operating system.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3127
|
||||||
|
https://github.com/restic/restic/pull/3628
|
8
changelog/0.13.0_2022-03-26/issue-3382
Normal file
8
changelog/0.13.0_2022-03-26/issue-3382
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Bugfix: Make `check` command honor `RESTIC_CACHE_DIR` environment variable
|
||||||
|
|
||||||
|
Previously, the `check` command didn't honor the `RESTIC_CACHE_DIR` environment
|
||||||
|
variable, which caused problems in certain system/usage configurations. This
|
||||||
|
has now been fixed.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3382
|
||||||
|
https://github.com/restic/restic/pull/3474
|
10
changelog/0.13.0_2022-03-26/issue-3464
Normal file
10
changelog/0.13.0_2022-03-26/issue-3464
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Enhancement: Skip lock creation on `forget` if `--no-lock` and `--dry-run`
|
||||||
|
|
||||||
|
Restic used to silently ignore the `--no-lock` option of the `forget` command.
|
||||||
|
|
||||||
|
It now skips creation of lock file in case both `--dry-run` and `--no-lock`
|
||||||
|
are specified. If `--no-lock` option is specified without `--dry-run`, restic
|
||||||
|
prints a warning message to stderr.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3464
|
||||||
|
https://github.com/restic/restic/pull/3623
|
8
changelog/0.13.0_2022-03-26/issue-3490
Normal file
8
changelog/0.13.0_2022-03-26/issue-3490
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Enhancement: Support random subset by size in `check --read-data-subset`
|
||||||
|
|
||||||
|
The `--read-data-subset` option of the `check` command now supports a third way
|
||||||
|
of specifying the subset to check, namely `nS` where `n` is a size in bytes with
|
||||||
|
suffix `S` as k/K, m/M, g/G or t/T.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3490
|
||||||
|
https://github.com/restic/restic/pull/3548
|
8
changelog/0.13.0_2022-03-26/issue-3518
Normal file
8
changelog/0.13.0_2022-03-26/issue-3518
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Bugfix: Make `copy` command honor `--no-lock` for source repository
|
||||||
|
|
||||||
|
The `copy` command previously did not respect the `--no-lock` option for the
|
||||||
|
source repository, causing failures with read-only storage backends. This has
|
||||||
|
now been fixed such that the option is now respected.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3518
|
||||||
|
https://github.com/restic/restic/pull/3589
|
9
changelog/0.13.0_2022-03-26/issue-3541
Normal file
9
changelog/0.13.0_2022-03-26/issue-3541
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Enhancement: Improve handling of temporary B2 delete errors
|
||||||
|
|
||||||
|
Deleting files on B2 could sometimes fail temporarily, which required restic to
|
||||||
|
retry the delete operation. In some cases the file was deleted nevertheless,
|
||||||
|
causing the retries and ultimately the restic command to fail. This has now been
|
||||||
|
fixed.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3541
|
||||||
|
https://github.com/restic/restic/pull/3544
|
8
changelog/0.13.0_2022-03-26/issue-3542
Normal file
8
changelog/0.13.0_2022-03-26/issue-3542
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Enhancement: Add file mode in symbolic notation to `ls --json`
|
||||||
|
|
||||||
|
The `ls --json` command now provides the file mode in symbolic notation (using
|
||||||
|
the `permissions` key), aligned with `find --json`.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3542
|
||||||
|
https://github.com/restic/restic/pull/3573
|
||||||
|
https://forum.restic.net/t/restic-ls-understanding-file-mode-with-json/4371
|
10
changelog/0.13.0_2022-03-26/issue-3556
Normal file
10
changelog/0.13.0_2022-03-26/issue-3556
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Bugfix: Fix hang with Backblaze B2 on SSL certificate authority error
|
||||||
|
|
||||||
|
Previously, if a request failed with an SSL unknown certificate authority
|
||||||
|
error, the B2 backend retried indefinitely and restic would appear to hang.
|
||||||
|
|
||||||
|
This has now been fixed and restic instead fails with an error message.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3556
|
||||||
|
https://github.com/restic/restic/issues/2355
|
||||||
|
https://github.com/restic/restic/pull/3571
|
15
changelog/0.13.0_2022-03-26/issue-3601
Normal file
15
changelog/0.13.0_2022-03-26/issue-3601
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
Bugfix: Fix rclone backend prematurely exiting when receiving SIGINT on Windows
|
||||||
|
|
||||||
|
Previously, pressing Ctrl+C in a Windows console where restic was running with
|
||||||
|
rclone as the backend would cause rclone to exit prematurely due to getting a
|
||||||
|
`SIGINT` signal at the same time as restic. Restic would then wait for a long
|
||||||
|
time for time with "unexpected EOF" and "rclone stdio connection already closed"
|
||||||
|
errors.
|
||||||
|
|
||||||
|
This has now been fixed by restic starting the rclone process detached from the
|
||||||
|
console restic runs in (similar to starting processes in a new process group on
|
||||||
|
Linux), which enables restic to gracefully clean up rclone (which now never gets
|
||||||
|
the `SIGINT`).
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3601
|
||||||
|
https://github.com/restic/restic/pull/3602
|
14
changelog/0.13.0_2022-03-26/issue-3641
Normal file
14
changelog/0.13.0_2022-03-26/issue-3641
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
Change: Ignore parent snapshot for `backup --stdin`
|
||||||
|
|
||||||
|
Restic uses a parent snapshot to speed up directory scanning when performing
|
||||||
|
backups, but this only wasted time and memory when the backup source is stdin
|
||||||
|
(using the `--stdin` option of the `backup` command), since no directory scanning
|
||||||
|
is performed in this case.
|
||||||
|
|
||||||
|
Snapshots made with `backup --stdin` no longer have a parent snapshot, which allows
|
||||||
|
restic to skip some startup operations and saves a bit of resources.
|
||||||
|
|
||||||
|
The `--parent` option is still available for `backup --stdin`, but is now ignored.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3641
|
||||||
|
https://github.com/restic/restic/pull/3645
|
8
changelog/0.13.0_2022-03-26/issue-3667
Normal file
8
changelog/0.13.0_2022-03-26/issue-3667
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Bugfix: The `mount` command now reports symlinks sizes
|
||||||
|
|
||||||
|
Symlinks used to have size zero in restic mountpoints, confusing some
|
||||||
|
third-party tools. They now have a size equal to the byte length of their
|
||||||
|
target path, as required by POSIX.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3667
|
||||||
|
https://github.com/restic/restic/pull/3668
|
7
changelog/0.13.0_2022-03-26/pull-2594
Normal file
7
changelog/0.13.0_2022-03-26/pull-2594
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
Enhancement: Speed up the `restore --verify` command
|
||||||
|
|
||||||
|
The `--verify` option lets the `restore` command verify the file content
|
||||||
|
after it has restored a snapshot. The performance of this operation has
|
||||||
|
now been improved by up to a factor of two.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/2594
|
10
changelog/0.13.0_2022-03-26/pull-2816
Normal file
10
changelog/0.13.0_2022-03-26/pull-2816
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Enhancement: The `backup` command no longer updates file access times on Linux
|
||||||
|
|
||||||
|
When reading files during backup, restic used to cause the operating system to
|
||||||
|
update the files' access times. Note that this did not apply to filesystems with
|
||||||
|
disabled file access times.
|
||||||
|
|
||||||
|
Restic now instructs the operating system not to update the file access time,
|
||||||
|
if the user running restic is the file owner or has root permissions.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/2816
|
9
changelog/0.13.0_2022-03-26/pull-2880
Normal file
9
changelog/0.13.0_2022-03-26/pull-2880
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Enhancement: Make `recover` collect only unreferenced trees
|
||||||
|
|
||||||
|
Previously, the `recover` command used to generate a snapshot containing *all*
|
||||||
|
root trees, even those which were already referenced by a snapshot.
|
||||||
|
|
||||||
|
This has been improved such that it now only processes trees not already
|
||||||
|
referenced by any snapshot.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/2880
|
12
changelog/0.13.0_2022-03-26/pull-3429
Normal file
12
changelog/0.13.0_2022-03-26/pull-3429
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
Enhancement: Verify that new or modified keys are stored correctly
|
||||||
|
|
||||||
|
When adding a new key or changing the password of a key, restic used to just
|
||||||
|
create the new key (and remove the old one, when changing the password). There
|
||||||
|
was no verification that the new key was stored correctly and works properly.
|
||||||
|
As the repository cannot be decrypted without a valid key file, this could in
|
||||||
|
rare cases cause the repository to become inaccessible.
|
||||||
|
|
||||||
|
Restic now checks that new key files actually work before continuing. This
|
||||||
|
can protect against some (rare) cases of hardware or storage problems.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/3429
|
12
changelog/0.13.0_2022-03-26/pull-3436
Normal file
12
changelog/0.13.0_2022-03-26/pull-3436
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
Enhancement: Improve local backend's resilience to (system) crashes
|
||||||
|
|
||||||
|
Restic now ensures that files stored using the `local` backend are created
|
||||||
|
atomically (that is, files are either stored completely or not at all). This
|
||||||
|
ensures that no incomplete files are left behind even if restic is terminated
|
||||||
|
while writing a file.
|
||||||
|
|
||||||
|
In addition, restic now tries to ensure that the directory in the repository
|
||||||
|
which contains a newly uploaded file is also written to disk. This can prevent
|
||||||
|
missing files if the system crashes or the disk is not properly unmounted.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/3436
|
9
changelog/0.13.0_2022-03-26/pull-3488
Normal file
9
changelog/0.13.0_2022-03-26/pull-3488
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Bugfix: `rebuild-index` failed if an index file was damaged
|
||||||
|
|
||||||
|
Previously, the `rebuild-index` command would fail with an error if an index
|
||||||
|
file was damaged or truncated. This has now been fixed.
|
||||||
|
|
||||||
|
On older restic versions, a (slow) workaround is to use
|
||||||
|
`rebuild-index --read-all-packs` or to manually delete the damaged index.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/3488
|
10
changelog/0.13.0_2022-03-26/pull-3508
Normal file
10
changelog/0.13.0_2022-03-26/pull-3508
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Enhancement: Cache blobs read by the `dump` command
|
||||||
|
|
||||||
|
When dumping a file using the `dump` command, restic did not cache blobs in any
|
||||||
|
way, so even consecutive runs of the same blob were loaded from the repository
|
||||||
|
again and again, slowing down the dump.
|
||||||
|
|
||||||
|
Now, the caching mechanism already used by the `fuse` command is also used by
|
||||||
|
the `dump` command. This makes dumping much faster, especially for sparse files.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/3508
|
8
changelog/0.13.0_2022-03-26/pull-3514
Normal file
8
changelog/0.13.0_2022-03-26/pull-3514
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Enhancement: Support configurable timeout for the rclone backend
|
||||||
|
|
||||||
|
A slow rclone backend could cause restic to time out while waiting for the
|
||||||
|
repository to open. Restic now offers an `-o rclone.timeout` option to make
|
||||||
|
this timeout configurable.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3511
|
||||||
|
https://github.com/restic/restic/pull/3514
|
6
changelog/0.13.0_2022-03-26/pull-3519
Normal file
6
changelog/0.13.0_2022-03-26/pull-3519
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
Change: Require Go 1.14 or newer
|
||||||
|
|
||||||
|
Restic now requires Go 1.14 to build. This allows it to use new
|
||||||
|
standard library features instead of an external dependency.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3519
|
8
changelog/0.13.0_2022-03-26/pull-3591
Normal file
8
changelog/0.13.0_2022-03-26/pull-3591
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Bugfix: Fix handling of `prune --max-repack-size=0`
|
||||||
|
|
||||||
|
Restic ignored the `--max-repack-size` option when passing a value of 0. This
|
||||||
|
has now been fixed.
|
||||||
|
|
||||||
|
As a workaround, `--max-repack-size=1` can be used with older versions of restic.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/3591
|
10
changelog/0.13.0_2022-03-26/pull-3593
Normal file
10
changelog/0.13.0_2022-03-26/pull-3593
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Enhancement: Improve `copy` performance by parallelizing IO
|
||||||
|
|
||||||
|
Restic copy previously only used a single thread for copying blobs between
|
||||||
|
repositories, which resulted in limited performance when copying small blobs
|
||||||
|
to/from a high latency backend (i.e. any remote backend, especially b2).
|
||||||
|
|
||||||
|
Copying will now use 8 parallel threads to increase the throughput of the copy
|
||||||
|
operation.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/3593
|
11
changelog/0.13.0_2022-03-26/pull-3619
Normal file
11
changelog/0.13.0_2022-03-26/pull-3619
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
Bugfix: Avoid choosing parent snapshots newer than time of new snapshot
|
||||||
|
|
||||||
|
The `backup` command, when a `--parent` was not provided, previously chose the
|
||||||
|
most recent matching snapshot as the parent snapshot. However, this didn't make
|
||||||
|
sense when the user passed `--time` to create a new snapshot older than the most
|
||||||
|
recent snapshot.
|
||||||
|
|
||||||
|
Instead, `backup` now chooses the most recent snapshot which is not newer than
|
||||||
|
the snapshot-being-created's timestamp, to avoid any time travel.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/3619
|
9
changelog/0.14.0_2022-08-25/issue-1153
Normal file
9
changelog/0.14.0_2022-08-25/issue-1153
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Enhancement: Support pruning even when the disk is full
|
||||||
|
|
||||||
|
When running out of disk space it was no longer possible to add or remove
|
||||||
|
data from a repository. To help with recovering from such a deadlock, the
|
||||||
|
prune command now supports an `--unsafe-recover-no-free-space` option to
|
||||||
|
recover from these situations. Make sure to read the documentation first!
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/1153
|
||||||
|
https://github.com/restic/restic/pull/3481
|
8
changelog/0.14.0_2022-08-25/issue-1842
Normal file
8
changelog/0.14.0_2022-08-25/issue-1842
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Change: Support debug log creation in release builds
|
||||||
|
|
||||||
|
Creating a debug log was only possible in debug builds which required users to
|
||||||
|
manually build restic. We changed the release builds to allow creating debug
|
||||||
|
logs by simply setting the environment variable `DEBUG_LOG=logname.log`.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/1842
|
||||||
|
https://github.com/restic/restic/pull/3826
|
28
changelog/0.14.0_2022-08-25/issue-21
Normal file
28
changelog/0.14.0_2022-08-25/issue-21
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
Enhancement: Add compression support
|
||||||
|
|
||||||
|
We've added compression support to the restic repository format. To create a
|
||||||
|
repository using the new format run `init --repository-version 2`. Please note
|
||||||
|
that the repository cannot be read by restic versions prior to 0.14.0.
|
||||||
|
|
||||||
|
You can configure whether data is compressed with the option `--compression`. It
|
||||||
|
can be set to `auto` (the default, which will compress very fast), `max` (which
|
||||||
|
will trade backup speed and CPU usage for better compression), or `off` (which
|
||||||
|
disables compression). Each setting is only applied for the current run of restic
|
||||||
|
and does *not* apply to future runs. The option can also be set via the
|
||||||
|
environment variable `RESTIC_COMPRESSION`.
|
||||||
|
|
||||||
|
To upgrade in place run `migrate upgrade_repo_v2` followed by `prune`. See the
|
||||||
|
documentation for more details. The migration checks the repository integrity
|
||||||
|
and upgrades the repository format, but will not change any data. Afterwards,
|
||||||
|
prune will rewrite the metadata to make use of compression.
|
||||||
|
|
||||||
|
As an alternative you can use the `copy` command to migrate snapshots; First
|
||||||
|
create a new repository using
|
||||||
|
`init --repository-version 2 --copy-chunker-params --repo2 path/to/old/repo`,
|
||||||
|
and then use the `copy` command to copy all snapshots to the new repository.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/21
|
||||||
|
https://github.com/restic/restic/issues/3779
|
||||||
|
https://github.com/restic/restic/pull/3666
|
||||||
|
https://github.com/restic/restic/pull/3704
|
||||||
|
https://github.com/restic/restic/pull/3733
|
18
changelog/0.14.0_2022-08-25/issue-2162
Normal file
18
changelog/0.14.0_2022-08-25/issue-2162
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
Enhancement: Adaptive IO concurrency based on backend connections
|
||||||
|
|
||||||
|
Many commands used hard-coded limits for the number of concurrent operations.
|
||||||
|
This prevented speed improvements by increasing the number of connections used
|
||||||
|
by a backend.
|
||||||
|
|
||||||
|
These limits have now been replaced by using the configured number of backend
|
||||||
|
connections instead, which can be controlled using the
|
||||||
|
`-o <backend-name>.connections=5` option. Commands will then automatically
|
||||||
|
scale their parallelism accordingly.
|
||||||
|
|
||||||
|
To limit the number of CPU cores used by restic, you can set the environment
|
||||||
|
variable `GOMAXPROCS` accordingly. For example to use a single CPU core, use
|
||||||
|
`GOMAXPROCS=1`.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/2162
|
||||||
|
https://github.com/restic/restic/issues/1467
|
||||||
|
https://github.com/restic/restic/pull/3611
|
8
changelog/0.14.0_2022-08-25/issue-2248
Normal file
8
changelog/0.14.0_2022-08-25/issue-2248
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Bugfix: Support `self-update` on Windows
|
||||||
|
|
||||||
|
Restic `self-update` would fail in situations where the operating system
|
||||||
|
locks running binaries, including Windows. The new behavior works around
|
||||||
|
this by renaming the running file and swapping the updated file in place.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/2248
|
||||||
|
https://github.com/restic/restic/pull/3675
|
12
changelog/0.14.0_2022-08-25/issue-2291
Normal file
12
changelog/0.14.0_2022-08-25/issue-2291
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
Enhancement: Allow pack size customization
|
||||||
|
|
||||||
|
Restic now uses a target pack size of 16 MiB by default. This can be customized
|
||||||
|
using the `--pack-size size` option. Supported pack sizes range between 4 and
|
||||||
|
128 MiB.
|
||||||
|
|
||||||
|
It is possible to migrate an existing repository to _larger_ pack files using
|
||||||
|
`prune --repack-small`. This will rewrite every pack file which is
|
||||||
|
significantly smaller than the target size.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/2291
|
||||||
|
https://github.com/restic/restic/pull/3731
|
14
changelog/0.14.0_2022-08-25/issue-2295
Normal file
14
changelog/0.14.0_2022-08-25/issue-2295
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
Enhancement: Allow use of SAS token to authenticate to Azure
|
||||||
|
|
||||||
|
Previously restic only supported AccountKeys to authenticate to Azure
|
||||||
|
storage accounts, which necessitates giving a significant amount of
|
||||||
|
access.
|
||||||
|
|
||||||
|
We added support for Azure SAS tokens which are a more fine-grained
|
||||||
|
and time-limited manner of granting access. Set the `AZURE_ACCOUNT_NAME`
|
||||||
|
and `AZURE_ACCOUNT_SAS` environment variables to use a SAS token for
|
||||||
|
authentication. Note that if `AZURE_ACCOUNT_KEY` is set, it will take
|
||||||
|
precedence.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/2295
|
||||||
|
https://github.com/restic/restic/pull/3661
|
13
changelog/0.14.0_2022-08-25/issue-2696
Normal file
13
changelog/0.14.0_2022-08-25/issue-2696
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
Enhancement: Improve backup speed with many small files
|
||||||
|
|
||||||
|
We have restructured the backup pipeline to continue reading files while all
|
||||||
|
upload connections are busy. This allows the backup to already prepare the next
|
||||||
|
data file such that the upload can continue as soon as a connection becomes
|
||||||
|
available. This can especially improve the backup performance for high latency
|
||||||
|
backends.
|
||||||
|
|
||||||
|
The upload concurrency is now controlled using the `-o <backend-name>.connections=5`
|
||||||
|
option.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/2696
|
||||||
|
https://github.com/restic/restic/pull/3489
|
15
changelog/0.14.0_2022-08-25/issue-2907
Normal file
15
changelog/0.14.0_2022-08-25/issue-2907
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
Enhancement: Make snapshot directory structure of `mount` command customizable
|
||||||
|
|
||||||
|
We've added the possibility to customize the snapshot directory structure of
|
||||||
|
the `mount` command using templates passed to the `--snapshot-template` option.
|
||||||
|
The formatting of snapshots' timestamps is now controlled using `--time-template`
|
||||||
|
and supports subdirectories to for example group snapshots by year. Please
|
||||||
|
see `restic help mount` for further details.
|
||||||
|
|
||||||
|
Characters in tag names which are not allowed in a filename are replaced by
|
||||||
|
underscores `_`. For example a tag `foo/bar` will result in a directory name
|
||||||
|
of `foo_bar`.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/2907
|
||||||
|
https://github.com/restic/restic/pull/2913
|
||||||
|
https://github.com/restic/restic/pull/3691
|
12
changelog/0.14.0_2022-08-25/issue-3114
Normal file
12
changelog/0.14.0_2022-08-25/issue-3114
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
Enhancement: Optimize handling of duplicate blobs in `prune`
|
||||||
|
|
||||||
|
Restic `prune` always used to repack all data files containing duplicate
|
||||||
|
blobs. This effectively removed all duplicates during prune. However, as a
|
||||||
|
consequence all these data files were repacked even if the unused repository
|
||||||
|
space threshold could be reached with less work.
|
||||||
|
|
||||||
|
This is now changed and `prune` works nice and fast even when there are lots
|
||||||
|
of duplicate blobs.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3114
|
||||||
|
https://github.com/restic/restic/pull/3290
|
13
changelog/0.14.0_2022-08-25/issue-3295
Normal file
13
changelog/0.14.0_2022-08-25/issue-3295
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
Change: Deprecate `check --check-unused` and add further checks
|
||||||
|
|
||||||
|
Since restic 0.12.0, it is expected to still have unused blobs after running
|
||||||
|
`prune`. This made the `--check-unused` option of the `check` command rather
|
||||||
|
useless and tended to confuse users. This option has been deprecated and is
|
||||||
|
now ignored.
|
||||||
|
|
||||||
|
The `check` command now also warns if a repository is using either the legacy
|
||||||
|
S3 layout or mixed pack files with both tree and data blobs. The latter is
|
||||||
|
known to cause performance problems.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3295
|
||||||
|
https://github.com/restic/restic/pull/3730
|
14
changelog/0.14.0_2022-08-25/issue-3428
Normal file
14
changelog/0.14.0_2022-08-25/issue-3428
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
Bugfix: List snapshots in backend at most once to resolve snapshot IDs
|
||||||
|
|
||||||
|
Many commands support specifying a list of snapshot IDs which are then used to
|
||||||
|
determine the snapshots to be processed by the command. To resolve snapshot IDs
|
||||||
|
or `latest`, and check that these exist, restic previously listed all snapshots
|
||||||
|
stored in the repository. Depending on the backend this could be a slow and/or
|
||||||
|
expensive operation.
|
||||||
|
|
||||||
|
Restic now lists the snapshots only once and remembers the result in order to
|
||||||
|
resolve all further snapshot IDs swiftly.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3428
|
||||||
|
https://github.com/restic/restic/pull/3570
|
||||||
|
https://github.com/restic/restic/pull/3395
|
14
changelog/0.14.0_2022-08-25/issue-3432
Normal file
14
changelog/0.14.0_2022-08-25/issue-3432
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
Bugfix: Fix rare 'not found in repository' error for `copy` command
|
||||||
|
|
||||||
|
In rare cases `copy` (and other commands) would report that `LoadTree(...)`
|
||||||
|
returned an `id [...] not found in repository` error. This could be caused by
|
||||||
|
a backup or copy command running concurrently. The error was only temporary;
|
||||||
|
running the failed restic command a second time as a workaround did resolve the
|
||||||
|
error.
|
||||||
|
|
||||||
|
This issue has now been fixed by correcting the order in which restic reads data
|
||||||
|
from the repository. It is now guaranteed that restic only loads snapshots for
|
||||||
|
which all necessary data is already available.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3432
|
||||||
|
https://github.com/restic/restic/pull/3570
|
10
changelog/0.14.0_2022-08-25/issue-3465
Normal file
10
changelog/0.14.0_2022-08-25/issue-3465
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Enhancement: Improve handling of temporary files on Windows
|
||||||
|
|
||||||
|
In some cases restic failed to delete temporary files, causing the current
|
||||||
|
command to fail. This has now been fixed by ensuring that Windows automatically
|
||||||
|
deletes the file. In addition, temporary files are only written to disk when
|
||||||
|
necessary, reducing disk writes.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3465
|
||||||
|
https://github.com/restic/restic/issues/1551
|
||||||
|
https://github.com/restic/restic/pull/3610
|
7
changelog/0.14.0_2022-08-25/issue-3685
Normal file
7
changelog/0.14.0_2022-08-25/issue-3685
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
Bugfix: The `diff` command incorrectly listed some files as added
|
||||||
|
|
||||||
|
There was a bug in the `diff` command, causing it to always show files in a
|
||||||
|
removed directory as added. This has now been fixed.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3685
|
||||||
|
https://github.com/restic/restic/pull/3686
|
13
changelog/0.14.0_2022-08-25/issue-3692
Normal file
13
changelog/0.14.0_2022-08-25/issue-3692
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
Bugfix: Fix rclone (shimmed by Scoop) and sftp not working on Windows
|
||||||
|
|
||||||
|
In #3602 a fix was introduced to address the problem of `rclone` prematurely
|
||||||
|
exiting when Ctrl+C is pressed on Windows. The solution was to create the
|
||||||
|
subprocess with its console detached from the restic console.
|
||||||
|
|
||||||
|
However, this solution failed when using `rclone` installed by Scoop or using
|
||||||
|
`sftp` with a passphrase-protected private key. We've now fixed this by using
|
||||||
|
a different approach to prevent Ctrl-C from passing down too early.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3681
|
||||||
|
https://github.com/restic/restic/issues/3692
|
||||||
|
https://github.com/restic/restic/pull/3696
|
11
changelog/0.14.0_2022-08-25/issue-3709
Normal file
11
changelog/0.14.0_2022-08-25/issue-3709
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
Enhancement: Validate exclude patterns before backing up
|
||||||
|
|
||||||
|
Exclude patterns provided via `--exclude`, `--iexclude`, `--exclude-file` or
|
||||||
|
`--iexclude-file` previously weren't validated. As a consequence, invalid
|
||||||
|
patterns resulted in files that were meant to be excluded being backed up.
|
||||||
|
|
||||||
|
Restic now validates all patterns before running the backup and aborts with
|
||||||
|
a fatal error if an invalid pattern is detected.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3709
|
||||||
|
https://github.com/restic/restic/pull/3734
|
13
changelog/0.14.0_2022-08-25/issue-3720
Normal file
13
changelog/0.14.0_2022-08-25/issue-3720
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
Bugfix: Directory sync errors for repositories accessed via SMB
|
||||||
|
|
||||||
|
On Linux and macOS, accessing a repository via a SMB/CIFS mount resulted in
|
||||||
|
restic failing to save the lock file, yielding the following errors:
|
||||||
|
|
||||||
|
Save(<lock/071fe833f0>) returned error, retrying after 552.330144ms: sync /repo/locks: no such file or directory
|
||||||
|
Save(<lock/bf789d7343>) returned error, retrying after 552.330144ms: sync /repo/locks: invalid argument
|
||||||
|
|
||||||
|
This has now been fixed by ignoring the relevant error codes.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3720
|
||||||
|
https://github.com/restic/restic/issues/3751
|
||||||
|
https://github.com/restic/restic/pull/3752
|
8
changelog/0.14.0_2022-08-25/issue-3736
Normal file
8
changelog/0.14.0_2022-08-25/issue-3736
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Bugfix: The `stats` command miscalculated restore size for multiple snapshots
|
||||||
|
|
||||||
|
Since restic 0.10.0 the restore size calculated by the `stats` command for
|
||||||
|
multiple snapshots was too low. The hardlink detection was accidentally applied
|
||||||
|
across multiple snapshots and thus ignored many files. This has now been fixed.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3736
|
||||||
|
https://github.com/restic/restic/pull/3740
|
8
changelog/0.14.0_2022-08-25/issue-3837
Normal file
8
changelog/0.14.0_2022-08-25/issue-3837
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Enhancement: Improve SFTP repository initialization over slow links
|
||||||
|
|
||||||
|
The `init` command, when used on an SFTP backend, now sends multiple `mkdir`
|
||||||
|
commands to the backend concurrently. This reduces the waiting times when
|
||||||
|
creating a repository over a very slow connection.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3837
|
||||||
|
https://github.com/restic/restic/pull/3840
|
9
changelog/0.14.0_2022-08-25/issue-3861
Normal file
9
changelog/0.14.0_2022-08-25/issue-3861
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Bugfix: Yield error on invalid policy to `forget`
|
||||||
|
|
||||||
|
The `forget` command previously silently ignored invalid/unsupported
|
||||||
|
units in the duration options, such as e.g. `--keep-within-daily 2w`.
|
||||||
|
|
||||||
|
Specifying an invalid/unsupported duration unit now results in an error.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3861
|
||||||
|
https://github.com/restic/restic/pull/3862
|
21
changelog/0.14.0_2022-08-25/pull-3419
Normal file
21
changelog/0.14.0_2022-08-25/pull-3419
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
Enhancement: Use config file permissions to control file group access
|
||||||
|
|
||||||
|
Previously files in a local/SFTP repository would always end up with very
|
||||||
|
restrictive access permissions, allowing access only to the owner. This
|
||||||
|
prevented a number of valid use-cases involving groups and ACLs.
|
||||||
|
|
||||||
|
We now use the permissions of the config file in the repository to decide
|
||||||
|
whether group access should be given to newly created repository files or
|
||||||
|
not. We arrange for repository files to be created group readable exactly
|
||||||
|
when the repository config file is group readable.
|
||||||
|
|
||||||
|
To opt-in to group readable repositories, a simple `chmod -R g+r` or
|
||||||
|
equivalent on the config file can be used. For repositories that should
|
||||||
|
be writable by group members a tad more setup is required, see the docs.
|
||||||
|
|
||||||
|
Posix ACLs can also be used now that the group permissions being forced to
|
||||||
|
zero no longer masks the effect of ACL entries.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/2351
|
||||||
|
https://github.com/restic/restic/pull/3419
|
||||||
|
https://forum.restic.net/t/1391
|
9
changelog/0.14.0_2022-08-25/pull-3475
Normal file
9
changelog/0.14.0_2022-08-25/pull-3475
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Enhancement: Allow limiting IO concurrency for local and SFTP backend
|
||||||
|
|
||||||
|
Restic did not support limiting the IO concurrency / number of connections for
|
||||||
|
accessing repositories stored using the local or SFTP backends. The number of
|
||||||
|
connections is now limited as for other backends, and can be configured via the
|
||||||
|
the `-o local.connections=2` and `-o sftp.connections=5` options. This ensures
|
||||||
|
that restic does not overwhelm the backend with concurrent IO operations.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/3475
|
13
changelog/0.14.0_2022-08-25/pull-3484
Normal file
13
changelog/0.14.0_2022-08-25/pull-3484
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
Enhancement: Stream data in `check` and `prune` commands
|
||||||
|
|
||||||
|
The commands `check --read-data` and `prune` previously downloaded data files
|
||||||
|
into temporary files which could end up being written to disk. This could cause
|
||||||
|
a large amount of data being written to disk.
|
||||||
|
|
||||||
|
The pack files are now instead streamed, which removes the need for temporary
|
||||||
|
files. Please note that *uploads* during `backup` and `prune` still require
|
||||||
|
temporary files.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/3484
|
||||||
|
https://github.com/restic/restic/issues/3710
|
||||||
|
https://github.com/restic/restic/pull/3717
|
10
changelog/0.14.0_2022-08-25/pull-3513
Normal file
10
changelog/0.14.0_2022-08-25/pull-3513
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Enhancement: Improve speed of `copy` command
|
||||||
|
|
||||||
|
The `copy` command could require a long time to copy snapshots for non-local
|
||||||
|
backends. This has been improved to provide a throughput comparable to the
|
||||||
|
`restore` command.
|
||||||
|
|
||||||
|
Additionally, `copy` now displays a progress bar.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/2923
|
||||||
|
https://github.com/restic/restic/pull/3513
|
8
changelog/0.14.0_2022-08-25/pull-3680
Normal file
8
changelog/0.14.0_2022-08-25/pull-3680
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Change: Update dependencies and require Go 1.15 or newer
|
||||||
|
|
||||||
|
We've updated most dependencies. Since some libraries require newer language
|
||||||
|
features we're dropping support for Go 1.14, which means that restic now
|
||||||
|
requires at least Go 1.15 to build.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3680
|
||||||
|
https://github.com/restic/restic/issues/3883
|
7
changelog/0.14.0_2022-08-25/pull-3716
Normal file
7
changelog/0.14.0_2022-08-25/pull-3716
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
Bugfix: Print "wrong password" to stderr instead of stdout
|
||||||
|
|
||||||
|
If an invalid password was entered, the error message was printed on stdout and
|
||||||
|
not on stderr as intended. This has now been fixed.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/3716
|
||||||
|
https://forum.restic.net/t/4965
|
8
changelog/0.14.0_2022-08-25/pull-3729
Normal file
8
changelog/0.14.0_2022-08-25/pull-3729
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Enhancement: Display full IDs in `check` warnings
|
||||||
|
|
||||||
|
When running commands to inspect or repair a damaged repository, it is often
|
||||||
|
necessary to supply the full IDs of objects stored in the repository.
|
||||||
|
|
||||||
|
The output of `check` now includes full IDs instead of their shortened variant.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/3729
|
19
changelog/0.14.0_2022-08-25/pull-3742
Normal file
19
changelog/0.14.0_2022-08-25/pull-3742
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
Change: Replace `--repo2` option used by `init`/`copy` with `--from-repo`
|
||||||
|
|
||||||
|
The `init` and `copy` commands can read data from another repository.
|
||||||
|
However, confusingly `--repo2` referred to the repository *from* which the
|
||||||
|
`init` command copies parameters, but for the `copy` command `--repo2`
|
||||||
|
referred to the copy *destination*.
|
||||||
|
|
||||||
|
We've introduced a new option, `--from-repo`, which always refers to the
|
||||||
|
source repository for both commands. The old parameter names have been
|
||||||
|
deprecated but still work. To create a new repository and copy all snapshots
|
||||||
|
to it, the commands are now as follows:
|
||||||
|
|
||||||
|
```
|
||||||
|
restic -r /srv/restic-repo-copy init --from-repo /srv/restic-repo --copy-chunker-params
|
||||||
|
restic -r /srv/restic-repo-copy copy --from-repo /srv/restic-repo
|
||||||
|
```
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/3742
|
||||||
|
https://forum.restic.net/t/5017
|
14
changelog/0.14.0_2022-08-25/pull-3772
Normal file
14
changelog/0.14.0_2022-08-25/pull-3772
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
Bugfix: Correctly rebuild index for legacy repositories
|
||||||
|
|
||||||
|
After running `rebuild-index` on a legacy repository containing mixed pack
|
||||||
|
files (that is, pack files which store both metadata and file data), `check`
|
||||||
|
printed warnings like `pack 12345678 contained in several indexes: ...`.
|
||||||
|
This warning was not critical, but has now nonetheless been fixed by properly
|
||||||
|
handling mixed pack files while rebuilding the index.
|
||||||
|
|
||||||
|
Running `prune` for such legacy repositories will also fix the warning by
|
||||||
|
reorganizing the pack files which caused it.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/3772
|
||||||
|
https://github.com/restic/restic/pull/3884
|
||||||
|
https://forum.restic.net/t/5044/13
|
7
changelog/0.14.0_2022-08-25/pull-3773
Normal file
7
changelog/0.14.0_2022-08-25/pull-3773
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
Enhancement: Optimize memory usage for directories with many files
|
||||||
|
|
||||||
|
Backing up a directory with hundreds of thousands or more files caused restic
|
||||||
|
to require large amounts of memory. We've now optimized the `backup` command
|
||||||
|
such that it requires up to 30% less memory.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/3773
|
11
changelog/0.14.0_2022-08-25/pull-3776
Normal file
11
changelog/0.14.0_2022-08-25/pull-3776
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
Bugfix: Limit number of key files tested while opening a repository
|
||||||
|
|
||||||
|
Previously, restic tested the password against every key in the repository
|
||||||
|
when opening a repository. The more keys there were in the repository, the
|
||||||
|
slower this operation became.
|
||||||
|
|
||||||
|
Restic now tests the password against up to 20 key files in the repository.
|
||||||
|
Alternatively, you can use the `--key-hint=<key ID>` option to specify a
|
||||||
|
specific key file to use instead.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/3776
|
11
changelog/0.14.0_2022-08-25/pull-3819
Normal file
11
changelog/0.14.0_2022-08-25/pull-3819
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
Enhancement: Validate include/exclude patterns before restoring
|
||||||
|
|
||||||
|
Patterns provided to `restore` via `--exclude`, `--iexclude`, `--include`
|
||||||
|
and `--iinclude` weren't validated before running the restore. Invalid
|
||||||
|
patterns would result in error messages being printed repeatedly, and
|
||||||
|
possibly unwanted files being restored.
|
||||||
|
|
||||||
|
Restic now validates all patterns before running the restore, and aborts
|
||||||
|
with a fatal error if an invalid pattern is detected.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/3819
|
8
changelog/0.15.0_2023-01-12/issue-14
Normal file
8
changelog/0.15.0_2023-01-12/issue-14
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Enhancement: Implement `rewrite` command
|
||||||
|
|
||||||
|
Restic now has a `rewrite` command which allows to rewrite existing snapshots
|
||||||
|
to remove unwanted files.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/14
|
||||||
|
https://github.com/restic/restic/pull/2731
|
||||||
|
https://github.com/restic/restic/pull/4079
|
15
changelog/0.15.0_2023-01-12/issue-1734
Normal file
15
changelog/0.15.0_2023-01-12/issue-1734
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
Enhancement: Inform about successful retries after errors
|
||||||
|
|
||||||
|
When a recoverable error is encountered, restic shows a warning message saying
|
||||||
|
that it's retrying, e.g.:
|
||||||
|
|
||||||
|
`Save(<data/956b9ced99>) returned error, retrying after 357.131936ms: ...`
|
||||||
|
|
||||||
|
This message can be confusing in that it never clearly states whether the retry
|
||||||
|
is successful or not. This has now been fixed such that restic follows up with
|
||||||
|
a message confirming a successful retry, e.g.:
|
||||||
|
|
||||||
|
`Save(<data/956b9ced99>) operation successful after 1 retries`
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/1734
|
||||||
|
https://github.com/restic/restic/pull/2661
|
12
changelog/0.15.0_2023-01-12/issue-1866
Normal file
12
changelog/0.15.0_2023-01-12/issue-1866
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
Enhancement: Improve handling of directories with duplicate entries
|
||||||
|
|
||||||
|
If for some reason a directory contains a duplicate entry, the `backup` command
|
||||||
|
would previously fail with a `node "path/to/file" already present` or `nodes
|
||||||
|
are not ordered got "path/to/file", last "path/to/file"` error.
|
||||||
|
|
||||||
|
The error handling has been improved to only report a warning in this case. Make
|
||||||
|
sure to check that the filesystem in question is not damaged if you see this!
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/1866
|
||||||
|
https://github.com/restic/restic/issues/3937
|
||||||
|
https://github.com/restic/restic/pull/3880
|
10
changelog/0.15.0_2023-01-12/issue-2015
Normal file
10
changelog/0.15.0_2023-01-12/issue-2015
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Bugfix: Make `mount` return exit code 0 after receiving Ctrl-C / SIGINT
|
||||||
|
|
||||||
|
To stop the `mount` command, a user has to press Ctrl-C or send a SIGINT
|
||||||
|
signal to restic. This used to cause restic to exit with a non-zero exit code.
|
||||||
|
|
||||||
|
The exit code has now been changed to zero as the above is the expected way
|
||||||
|
to stop the `mount` command and should therefore be considered successful.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/2015
|
||||||
|
https://github.com/restic/restic/pull/3894
|
19
changelog/0.15.0_2023-01-12/issue-2134
Normal file
19
changelog/0.15.0_2023-01-12/issue-2134
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
Enhancement: Support B2 API keys restricted to hiding but not deleting files
|
||||||
|
|
||||||
|
When the B2 backend does not have the necessary permissions to permanently
|
||||||
|
delete files, it now automatically falls back to hiding files. This allows
|
||||||
|
using restic with an application key which is not allowed to delete files.
|
||||||
|
This can prevent an attacker from deleting backups with such an API key.
|
||||||
|
|
||||||
|
To use this feature create an application key without the `deleteFiles`
|
||||||
|
capability. It is recommended to restrict the key to just one bucket.
|
||||||
|
For example using the `b2` command line tool:
|
||||||
|
|
||||||
|
`b2 create-key --bucket <bucketName> <keyName> listBuckets,readFiles,writeFiles,listFiles`
|
||||||
|
|
||||||
|
Alternatively, you can use the S3 backend to access B2, as described
|
||||||
|
in the documentation. In this mode, files are also only hidden instead
|
||||||
|
of being deleted permanently.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/2134
|
||||||
|
https://github.com/restic/restic/pull/2398
|
11
changelog/0.15.0_2023-01-12/issue-2152
Normal file
11
changelog/0.15.0_2023-01-12/issue-2152
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
Enhancement: Make `init` open only one connection for the SFTP backend
|
||||||
|
|
||||||
|
The `init` command using the SFTP backend used to connect twice to the
|
||||||
|
repository. This could be inconvenient if the user must enter a password,
|
||||||
|
or cause `init` to fail if the server does not correctly close the first SFTP
|
||||||
|
connection.
|
||||||
|
|
||||||
|
This has now been fixed by reusing the first/initial SFTP connection opened.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/2152
|
||||||
|
https://github.com/restic/restic/pull/3882
|
13
changelog/0.15.0_2023-01-12/issue-2533
Normal file
13
changelog/0.15.0_2023-01-12/issue-2533
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
Enhancement: Handle cache corruption on disk and in downloads
|
||||||
|
|
||||||
|
In rare situations, like for example after a system crash, the data stored
|
||||||
|
in the cache might be corrupted. This could cause restic to fail and required
|
||||||
|
manually deleting the cache.
|
||||||
|
|
||||||
|
Restic now automatically removes broken data from the cache, allowing it
|
||||||
|
to recover from such a situation without user intervention. In addition,
|
||||||
|
restic retries downloads which return corrupt data in order to also handle
|
||||||
|
temporary download problems.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/2533
|
||||||
|
https://github.com/restic/restic/pull/3521
|
17
changelog/0.15.0_2023-01-12/issue-2591
Normal file
17
changelog/0.15.0_2023-01-12/issue-2591
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
Bugfix: Don't read password from stdin for `backup --stdin`
|
||||||
|
|
||||||
|
The `backup` command when used with `--stdin` previously tried to read first
|
||||||
|
the password, then the data to be backed up from standard input. This meant
|
||||||
|
it would often confuse part of the data for the password.
|
||||||
|
|
||||||
|
From now on, it will instead exit with the message `Fatal: cannot read both
|
||||||
|
password and data from stdin` unless the password is passed in some other
|
||||||
|
way (such as `--restic-password-file`, `RESTIC_PASSWORD`, etc).
|
||||||
|
|
||||||
|
To enter the password interactively a password command has to be used. For
|
||||||
|
example on Linux, `mysqldump somedatabase | restic backup --stdin
|
||||||
|
--password-command='sh -c "systemd-ask-password < /dev/tty"'` securely reads
|
||||||
|
the password from the terminal.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/2591
|
||||||
|
https://github.com/restic/restic/pull/4011
|
9
changelog/0.15.0_2023-01-12/issue-2699
Normal file
9
changelog/0.15.0_2023-01-12/issue-2699
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Enhancement: Support restoring symbolic links on Windows
|
||||||
|
|
||||||
|
The `restore` command now supports restoring symbolic links on Windows. Because
|
||||||
|
of Windows specific restrictions this is only possible when running restic with
|
||||||
|
the `SeCreateSymbolicLinkPrivilege` privilege or as an administrator.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/1078
|
||||||
|
https://github.com/restic/restic/issues/2699
|
||||||
|
https://github.com/restic/restic/pull/2875
|
20
changelog/0.15.0_2023-01-12/issue-2715
Normal file
20
changelog/0.15.0_2023-01-12/issue-2715
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
Enhancement: Stricter repository lock handling
|
||||||
|
|
||||||
|
Previously, restic commands kept running even if they failed to refresh their
|
||||||
|
locks in time. This could be a problem e.g. in case the client system running
|
||||||
|
a backup entered the standby power mode while the backup was still in progress
|
||||||
|
(which would prevent the client from refreshing its lock), and after a short
|
||||||
|
delay another host successfully runs `unlock` and `prune` on the repository,
|
||||||
|
which would remove all data added by the in-progress backup. If the backup
|
||||||
|
client later continues its backup, even though its lock had expired in the
|
||||||
|
meantime, this would lead to an incomplete snapshot.
|
||||||
|
|
||||||
|
To address this, lock handling is now much stricter. Commands requiring a lock
|
||||||
|
are canceled if the lock is not refreshed successfully in time. In addition,
|
||||||
|
if a lock file is not readable restic will not allow starting a command. It may
|
||||||
|
be necessary to remove invalid lock files manually or use `unlock --remove-all`.
|
||||||
|
Please make sure that no other restic processes are running concurrently before
|
||||||
|
doing this, however.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/2715
|
||||||
|
https://github.com/restic/restic/pull/3569
|
9
changelog/0.15.0_2023-01-12/issue-2724
Normal file
9
changelog/0.15.0_2023-01-12/issue-2724
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Change: Include full snapshot ID in JSON output of `backup`
|
||||||
|
|
||||||
|
We have changed the JSON output of the backup command to include the full
|
||||||
|
snapshot ID instead of just a shortened version, as the latter can be ambiguous
|
||||||
|
in some rare cases. To derive the short ID, please truncate the full ID down to
|
||||||
|
eight characters.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/2724
|
||||||
|
https://github.com/restic/restic/pull/3993
|
8
changelog/0.15.0_2023-01-12/issue-3029
Normal file
8
changelog/0.15.0_2023-01-12/issue-3029
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Enhancement: Add support for `credential_process` to S3 backend
|
||||||
|
|
||||||
|
Restic now uses a newer library for the S3 backend, which adds support for the
|
||||||
|
`credential_process` option in the AWS credential configuration.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3029
|
||||||
|
https://github.com/restic/restic/issues/4034
|
||||||
|
https://github.com/restic/restic/pull/4025
|
8
changelog/0.15.0_2023-01-12/issue-3096
Normal file
8
changelog/0.15.0_2023-01-12/issue-3096
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Enhancement: Make `mount` command support macOS using macFUSE 4.x
|
||||||
|
|
||||||
|
Restic now uses a different FUSE library for mounting snapshots and making them
|
||||||
|
available as a FUSE filesystem using the `mount` command. This adds support for
|
||||||
|
macFUSE 4.x which can be used to make this work on recent macOS versions.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3096
|
||||||
|
https://github.com/restic/restic/pull/4024
|
7
changelog/0.15.0_2023-01-12/issue-3124
Normal file
7
changelog/0.15.0_2023-01-12/issue-3124
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
Enhancement: Support JSON output for the `init` command
|
||||||
|
|
||||||
|
The `init` command used to ignore the `--json` option, but now outputs a JSON
|
||||||
|
message if the repository was created successfully.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3124
|
||||||
|
https://github.com/restic/restic/pull/3132
|
14
changelog/0.15.0_2023-01-12/issue-3161
Normal file
14
changelog/0.15.0_2023-01-12/issue-3161
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
Bugfix: Delete files on Backblaze B2 more reliably
|
||||||
|
|
||||||
|
Restic used to only delete the latest version of files stored in B2. In most
|
||||||
|
cases this worked well as there was only a single version of the file. However,
|
||||||
|
due to retries while uploading it is possible for multiple file versions to be
|
||||||
|
stored at B2. This could lead to various problems for files that should have
|
||||||
|
been deleted but still existed.
|
||||||
|
|
||||||
|
The implementation has now been changed to delete all versions of files, which
|
||||||
|
doubles the amount of Class B transactions necessary to delete files, but
|
||||||
|
assures that no file versions are left behind.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3161
|
||||||
|
https://github.com/restic/restic/pull/3885
|
12
changelog/0.15.0_2023-01-12/issue-3336
Normal file
12
changelog/0.15.0_2023-01-12/issue-3336
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
Bugfix: Make SFTP backend report no space left on device
|
||||||
|
|
||||||
|
Backing up to an SFTP backend would spew repeated SSH_FX_FAILURE messages when
|
||||||
|
the remote disk was full. Restic now reports "sftp: no space left on device"
|
||||||
|
and exits immediately when it detects this condition.
|
||||||
|
|
||||||
|
A fix for this issue was implemented in restic 0.12.1, but unfortunately the
|
||||||
|
fix itself contained a bug that prevented it from taking effect.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3336
|
||||||
|
https://github.com/restic/restic/pull/3345
|
||||||
|
https://github.com/restic/restic/pull/4075
|
10
changelog/0.15.0_2023-01-12/issue-3567
Normal file
10
changelog/0.15.0_2023-01-12/issue-3567
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Bugfix: Improve handling of interrupted syscalls in `mount` command
|
||||||
|
|
||||||
|
Accessing restic's FUSE mount could result in "input/output" errors when using
|
||||||
|
programs in which syscalls can be interrupted. This is for example the case for
|
||||||
|
Go programs. This has now been fixed by improved error handling of interrupted
|
||||||
|
syscalls.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3567
|
||||||
|
https://github.com/restic/restic/issues/3694
|
||||||
|
https://github.com/restic/restic/pull/3875
|
7
changelog/0.15.0_2023-01-12/issue-3897
Normal file
7
changelog/0.15.0_2023-01-12/issue-3897
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
Bugfix: Fix stuck `copy` command when `-o <backend>.connections=1`
|
||||||
|
|
||||||
|
When running the `copy` command with `-o <backend>.connections=1` the
|
||||||
|
command would be infinitely stuck. This has now been fixed.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3897
|
||||||
|
https://github.com/restic/restic/pull/3898
|
9
changelog/0.15.0_2023-01-12/issue-3918
Normal file
9
changelog/0.15.0_2023-01-12/issue-3918
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Bugfix: Correct prune statistics for partially compressed repositories
|
||||||
|
|
||||||
|
In a partially compressed repository, one data blob can exist both in an
|
||||||
|
uncompressed and a compressed version. This caused the `prune` statistics to
|
||||||
|
become inaccurate and e.g. report a too high value for the unused size, such
|
||||||
|
as "unused size after prune: 16777215.991 TiB". This has now been fixed.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3918
|
||||||
|
https://github.com/restic/restic/pull/3980
|
11
changelog/0.15.0_2023-01-12/issue-3929
Normal file
11
changelog/0.15.0_2023-01-12/issue-3929
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
Change: Make `unlock` display message only when locks were actually removed
|
||||||
|
|
||||||
|
The `unlock` command used to print the "successfully removed locks" message
|
||||||
|
whenever it was run, regardless of lock files having being removed or not.
|
||||||
|
|
||||||
|
This has now been changed such that it only prints the message if any lock
|
||||||
|
files were actually removed. In addition, it also reports the number of
|
||||||
|
removed lock files.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3929
|
||||||
|
https://github.com/restic/restic/pull/3935
|
15
changelog/0.15.0_2023-01-12/issue-3932
Normal file
15
changelog/0.15.0_2023-01-12/issue-3932
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
Enhancement: Improve handling of ErrDot errors in rclone and sftp backends
|
||||||
|
|
||||||
|
Since Go 1.19, restic can no longer implicitly run relative executables which
|
||||||
|
are found in the current directory (e.g. `rclone` if found in `.`). This is a
|
||||||
|
security feature of Go to prevent against running unintended and possibly
|
||||||
|
harmful executables.
|
||||||
|
|
||||||
|
The error message for this was just "cannot run executable found relative to
|
||||||
|
current directory". This has now been improved to yield a more specific error
|
||||||
|
message, informing the user how to explicitly allow running the executable
|
||||||
|
using the `-o rclone.program` and `-o sftp.command` extended options with `./`.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3932
|
||||||
|
https://pkg.go.dev/os/exec#hdr-Executables_in_the_current_directory
|
||||||
|
https://go.dev/blog/path-security
|
8
changelog/0.15.0_2023-01-12/issue-4003
Normal file
8
changelog/0.15.0_2023-01-12/issue-4003
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Bugfix: Make `backup` no longer hang on Solaris when seeing a FIFO file
|
||||||
|
|
||||||
|
The `backup` command used to hang on Solaris whenever it encountered a FIFO
|
||||||
|
file (named pipe), due to a bug in the handling of extended attributes. This
|
||||||
|
bug has now been fixed.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/4003
|
||||||
|
https://github.com/restic/restic/pull/4053
|
8
changelog/0.15.0_2023-01-12/issue-4016
Normal file
8
changelog/0.15.0_2023-01-12/issue-4016
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Bugfix: Support ExFAT-formatted local backends on macOS Ventura
|
||||||
|
|
||||||
|
ExFAT-formatted disks could not be used as local backends starting from macOS
|
||||||
|
Ventura. Restic commands would fail with an "inappropriate ioctl for device"
|
||||||
|
error. This has now been fixed.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/4016
|
||||||
|
https://github.com/restic/restic/pull/4021
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user