mirror of
https://github.com/restic/restic.git
synced 2025-08-20 02:07:31 +00:00
Compare commits
1113 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
baca3f6303 | ||
|
|
524c2721b4 | ||
|
|
be1b978ac8 | ||
|
|
d4d9c1b8f1 | ||
|
|
ead8dd0173 | ||
|
|
cd09ef4614 | ||
|
|
d399e32590 | ||
|
|
54a4034ec0 | ||
|
|
138b7b3328 | ||
|
|
6d19e0260d | ||
|
|
85abceb99c | ||
|
|
85c15e6fa3 | ||
|
|
d6917c7e00 | ||
|
|
8c20301172 | ||
|
|
4b4f916bdc | ||
|
|
9707956375 | ||
|
|
d1d4510974 | ||
|
|
a28940ea29 | ||
|
|
db26dc75e1 | ||
|
|
efef38d0e8 | ||
|
|
d00e72fed4 | ||
|
|
62af0d769a | ||
|
|
ae83a9002a | ||
|
|
ceff4af1ac | ||
|
|
b15ba553a4 | ||
|
|
46cb1df1bc | ||
|
|
bd3816fa14 | ||
|
|
b2b0856908 | ||
|
|
7f05af02b9 | ||
|
|
eabc177a42 | ||
|
|
ab6defbace | ||
|
|
fe1f61570b | ||
|
|
baf9b54891 | ||
|
|
6a4d6d5da4 | ||
|
|
41f70f1f4f | ||
|
|
6c7560e537 | ||
|
|
0f97356b21 | ||
|
|
2089c54310 | ||
|
|
f1877e721e | ||
|
|
17f2301cc2 | ||
|
|
79deb99605 | ||
|
|
643180b415 | ||
|
|
d27cfd10a9 | ||
|
|
34f3b13b7c | ||
|
|
495982232c | ||
|
|
d173d1c532 | ||
|
|
f955222750 | ||
|
|
cb9cbe55d9 | ||
|
|
f750aa8dfb | ||
|
|
c635e30e3f | ||
|
|
f5d5e8fd0a | ||
|
|
a858ab254b | ||
|
|
4087c3aff7 | ||
|
|
aa86c76aab | ||
|
|
76ef94d15c | ||
|
|
91aef00df3 | ||
|
|
b0da0f152f | ||
|
|
75f6bd89ed | ||
|
|
3fd0ad7448 | ||
|
|
b6593ad7df | ||
|
|
ed65a7dbca | ||
|
|
eac1c4a8d0 | ||
|
|
f519454f33 | ||
|
|
54ae8a0c40 | ||
|
|
a36b5b6391 | ||
|
|
5e36e4da96 | ||
|
|
8ee08e5d09 | ||
|
|
9f9f736ec2 | ||
|
|
af98c3ccbe | ||
|
|
6edfc73879 | ||
|
|
d985ed27d1 | ||
|
|
4278ec6553 | ||
|
|
15cb498c47 | ||
|
|
59e217b003 | ||
|
|
3457f50c8c | ||
|
|
bbe2f1ecf2 | ||
|
|
362917afb9 | ||
|
|
b92ab458b0 | ||
|
|
2657217574 | ||
|
|
02ab511c2f | ||
|
|
6e586b64e4 | ||
|
|
fb4d458cce | ||
|
|
c7b5ddc012 | ||
|
|
3eb825e47c | ||
|
|
4d60011030 | ||
|
|
507ed32469 | ||
|
|
22fdfe1ffe | ||
|
|
e05cd9abca | ||
|
|
ea55ca5303 | ||
|
|
df53f4782b | ||
|
|
35055adbc4 | ||
|
|
bd9eb528c0 | ||
|
|
02032f3109 | ||
|
|
cfff1367c1 | ||
|
|
353265a329 | ||
|
|
84a1170dee | ||
|
|
0b4d9c9a51 | ||
|
|
5422a7daa5 | ||
|
|
691c01963b | ||
|
|
2bec99dc6f | ||
|
|
e60c5b2d7f | ||
|
|
a04964bb86 | ||
|
|
fe54912a46 | ||
|
|
feb6abb7bb | ||
|
|
aaf5254e26 | ||
|
|
705556f134 | ||
|
|
c23eebc225 | ||
|
|
e09f6f540f | ||
|
|
0fca028491 | ||
|
|
57a08291f5 | ||
|
|
2117ce4cfb | ||
|
|
3a478bc522 | ||
|
|
9a7704fa2b | ||
|
|
9a69f44de2 | ||
|
|
7a6339180b | ||
|
|
82e6e28781 | ||
|
|
eb33e564c9 | ||
|
|
62680af734 | ||
|
|
68460fd3d1 | ||
|
|
9459328d8d | ||
|
|
9d71990c26 | ||
|
|
9219b6a0ef | ||
|
|
9a0ec05145 | ||
|
|
2a5b6af2e9 | ||
|
|
51e4e5ef82 | ||
|
|
e998314088 | ||
|
|
be03c1a457 | ||
|
|
95050117eb | ||
|
|
21a3a41b69 | ||
|
|
3f919f2371 | ||
|
|
50b43fbac0 | ||
|
|
f689e2638d | ||
|
|
f9ef2b1e44 | ||
|
|
b87a37f318 | ||
|
|
647ebf352a | ||
|
|
62d3ef4a93 | ||
|
|
6c5fc32967 | ||
|
|
ae13cf15c1 | ||
|
|
1fe1ec40a2 | ||
|
|
32f5ee6f4e | ||
|
|
5bd8a6d7eb | ||
|
|
4a33370072 | ||
|
|
98fb56baa6 | ||
|
|
f12bbd9229 | ||
|
|
6adb629608 | ||
|
|
25ff9fa893 | ||
|
|
bdaec8fdb8 | ||
|
|
55b440b520 | ||
|
|
3f63b53090 | ||
|
|
76253b2a20 | ||
|
|
20e82d1fcf | ||
|
|
96eada3d5f | ||
|
|
b8f4267a36 | ||
|
|
1f6883a05c | ||
|
|
8154f6a77a | ||
|
|
184b7616ba | ||
|
|
67f237b4f3 | ||
|
|
090f9d6237 | ||
|
|
321cc35cde | ||
|
|
a97915642c | ||
|
|
c64d81063e | ||
|
|
233b841ad9 | ||
|
|
85860e6e97 | ||
|
|
2dd6769429 | ||
|
|
5d9b0d894e | ||
|
|
d4bf7a3cb1 | ||
|
|
24c8a33da9 | ||
|
|
399f8e84a1 | ||
|
|
6a436d731d | ||
|
|
b2fcbc21cb | ||
|
|
05e5e29a8c | ||
|
|
f490288738 | ||
|
|
51718ec561 | ||
|
|
11eb88a2ea | ||
|
|
bee3231ed4 | ||
|
|
60d8066568 | ||
|
|
08dea911bd | ||
|
|
47206a6579 | ||
|
|
594689db32 | ||
|
|
5705326bb8 | ||
|
|
978ebaac49 | ||
|
|
307aeb6849 | ||
|
|
9cd85d5956 | ||
|
|
c9f506925c | ||
|
|
e990d3d483 | ||
|
|
7042190807 | ||
|
|
c158741e2e | ||
|
|
89fbd39e59 | ||
|
|
1ce599d2ae | ||
|
|
789fec3da7 | ||
|
|
8a120c8800 | ||
|
|
41395e83c5 | ||
|
|
2a193195b0 | ||
|
|
229c7b24a4 | ||
|
|
b34ce57dd4 | ||
|
|
1ce839228e | ||
|
|
fb1170c1d6 | ||
|
|
e457fe22bc | ||
|
|
39299e36ef | ||
|
|
0512f292e8 | ||
|
|
3a93e28605 | ||
|
|
6b82cce1bd | ||
|
|
31e07cecbb | ||
|
|
c181b51360 | ||
|
|
ccd19b7e88 | ||
|
|
b0987ff570 | ||
|
|
eff3124f15 | ||
|
|
43fa051546 | ||
|
|
2293835242 | ||
|
|
0fcb6c7f94 | ||
|
|
325fa916b5 | ||
|
|
170e495334 | ||
|
|
9d44682e3e | ||
|
|
4d43509423 | ||
|
|
ea9ad77e05 | ||
|
|
cc84884d2e | ||
|
|
4a5ae2ba84 | ||
|
|
1f1e50f49e | ||
|
|
f3c3b0f377 | ||
|
|
7e2be9e081 | ||
|
|
cc3c218baf | ||
|
|
c1578a2035 | ||
|
|
678b983300 | ||
|
|
1b3870dc43 | ||
|
|
ef40aee2bd | ||
|
|
3a32c4e59f | ||
|
|
e703e89e9b | ||
|
|
389f6ee74c | ||
|
|
bbac74b172 | ||
|
|
a280b7364e | ||
|
|
825651a135 | ||
|
|
e36d17a6f8 | ||
|
|
068b115abc | ||
|
|
41a5bf357f | ||
|
|
f96896a9c0 | ||
|
|
2ab9a3b9c3 | ||
|
|
dbe2eef80c | ||
|
|
6e7c6674ad | ||
|
|
7fe830ee1e | ||
|
|
a07c7166ba | ||
|
|
d2f8f9de23 | ||
|
|
d5fe5107c8 | ||
|
|
f08ba1a005 | ||
|
|
70fb554854 | ||
|
|
8c02ebb029 | ||
|
|
8dcb0c4a9d | ||
|
|
74ca82a6f8 | ||
|
|
9cbc2502c6 | ||
|
|
93038ed8f4 | ||
|
|
8da5a6649b | ||
|
|
3888c21a27 | ||
|
|
1257c2c075 | ||
|
|
182b9796e4 | ||
|
|
cbf87fbdb3 | ||
|
|
b5511e8e4c | ||
|
|
50e0d5e6b5 | ||
|
|
705ad51bcc | ||
|
|
13a8b5822f | ||
|
|
3d3bb88745 | ||
|
|
3a3cf608f5 | ||
|
|
19ac12d95b | ||
|
|
3325a7c862 | ||
|
|
555be49a79 | ||
|
|
9aa9e0d1ec | ||
|
|
7d12c29286 | ||
|
|
56836364a4 | ||
|
|
4df77e9f26 | ||
|
|
2545c84321 | ||
|
|
191c47d30e | ||
|
|
dd1ef13c1c | ||
|
|
4d5ee987a7 | ||
|
|
b2ed42cec4 | ||
|
|
61042a77a4 | ||
|
|
4e9e2c3229 | ||
|
|
faec0ff816 | ||
|
|
07d1f8047e | ||
|
|
b2b0760eb0 | ||
|
|
cf16239058 | ||
|
|
1531eab746 | ||
|
|
d54176ce5d | ||
|
|
a9aff885d6 | ||
|
|
bb20078641 | ||
|
|
237f32c651 | ||
|
|
74e4656850 | ||
|
|
c37d587f81 | ||
|
|
ffc6b3d887 | ||
|
|
88c63a029c | ||
|
|
0b908bb1fb | ||
|
|
0372c7ef04 | ||
|
|
9464c63550 | ||
|
|
6ebf2dd235 | ||
|
|
5f153109ba | ||
|
|
2beaa74892 | ||
|
|
55c21846b1 | ||
|
|
0f80b6a137 | ||
|
|
e14ccb1142 | ||
|
|
609367195a | ||
|
|
18eb1d3ab0 | ||
|
|
32a6b66267 | ||
|
|
f903db492c | ||
|
|
25a0be7f26 | ||
|
|
a27b7f1370 | ||
|
|
fa361dbfbd | ||
|
|
5260d38980 | ||
|
|
2f7b4ceae1 | ||
|
|
aea7538936 | ||
|
|
49a6a4f5bf | ||
|
|
237d00000e | ||
|
|
0c727f6ad1 | ||
|
|
4e7d3efad4 | ||
|
|
17446da5fd | ||
|
|
a3cee840d2 | ||
|
|
c76f3a1e27 | ||
|
|
1e9714088d | ||
|
|
58e3f5955c | ||
|
|
dd8d8b1ae0 | ||
|
|
e1ac0f0e0c | ||
|
|
a88d90b8e5 | ||
|
|
2fcb3947df | ||
|
|
eef0ee7a85 | ||
|
|
f1b73c9301 | ||
|
|
ac1dfc99bb | ||
|
|
098de3554c | ||
|
|
8812dcd56a | ||
|
|
379282299a | ||
|
|
0c796dbd9b | ||
|
|
f9dded83b3 | ||
|
|
88a10a368f | ||
|
|
9a7056a479 | ||
|
|
fc05e35a08 | ||
|
|
f1c388c623 | ||
|
|
12141afbad | ||
|
|
fed33295c3 | ||
|
|
b217f38ee7 | ||
|
|
0c1240360d | ||
|
|
ffca602315 | ||
|
|
da419be43c | ||
|
|
8f1ca8fabe | ||
|
|
f74dad2afb | ||
|
|
3e287afdbf | ||
|
|
06894484a1 | ||
|
|
6e5b42d5c4 | ||
|
|
ed5b2c2c9b | ||
|
|
13c32b0fbe | ||
|
|
9747cef338 | ||
|
|
8e913e6d3a | ||
|
|
b93459cbb0 | ||
|
|
692f81ede8 | ||
|
|
7a268e4aba | ||
|
|
4b3a0b4104 | ||
|
|
cebce52c16 | ||
|
|
675a49a95b | ||
|
|
e2dba9f5c7 | ||
|
|
06fd6b54d7 | ||
|
|
419e6f26b1 | ||
|
|
c3212ab6a6 | ||
|
|
658aa4c0f7 | ||
|
|
998cf5a7f8 | ||
|
|
7eec91f841 | ||
|
|
51dc80be5b | ||
|
|
ddbc0c1b37 | ||
|
|
ecbf8e055c | ||
|
|
16ba237d8b | ||
|
|
a466e945d9 | ||
|
|
03b9764bce | ||
|
|
22c9276719 | ||
|
|
1e33b285c1 | ||
|
|
c05f96e6b9 | ||
|
|
94752b7ee2 | ||
|
|
0058745881 | ||
|
|
a719d10e22 | ||
|
|
b0a01ae68a | ||
|
|
472bf5184f | ||
|
|
d1a5ec7839 | ||
|
|
1514593f22 | ||
|
|
5e4e268bdc | ||
|
|
3252f60df5 | ||
|
|
2fa8b96843 | ||
|
|
7a01bd3b67 | ||
|
|
319087c056 | ||
|
|
6ed73ed408 | ||
|
|
c832a492ac | ||
|
|
e01baeabba | ||
|
|
bfc9c6c971 | ||
|
|
5773b86d02 | ||
|
|
a013014c24 | ||
|
|
f9850b79b5 | ||
|
|
2f518b7241 | ||
|
|
49be202cb0 | ||
|
|
19ebc1b786 | ||
|
|
23a122a901 | ||
|
|
e77002f841 | ||
|
|
d05f6211d1 | ||
|
|
ee3c55ea3d | ||
|
|
db046c0acc | ||
|
|
3e6a26e2e9 | ||
|
|
65c5e511a1 | ||
|
|
6d10c655a0 | ||
|
|
bb40e49e75 | ||
|
|
fefe15d7a1 | ||
|
|
78e5aa6d30 | ||
|
|
1cb11ad8ad | ||
|
|
90a663c94f | ||
|
|
88a7231217 | ||
|
|
c0627dc80d | ||
|
|
e71367e6b9 | ||
|
|
5aa37acdaa | ||
|
|
9c64a95df8 | ||
|
|
7c8dd61e8c | ||
|
|
f6cc10578d | ||
|
|
4ce87a7f64 | ||
|
|
e17ee40a31 | ||
|
|
1bd1f3008d | ||
|
|
38dac78180 | ||
|
|
bc2399fbd9 | ||
|
|
1a9705fc95 | ||
|
|
8c4caf09a8 | ||
|
|
375189488c | ||
|
|
903651c719 | ||
|
|
118d599d0a | ||
|
|
db459eda21 | ||
|
|
a14a63cd29 | ||
|
|
947f0c345e | ||
|
|
d23a2e1925 | ||
|
|
08ae708b3b | ||
|
|
99a05d5ab2 | ||
|
|
6557f36f61 | ||
|
|
5f58797ba7 | ||
|
|
9cef6b4c69 | ||
|
|
8a78a042db | ||
|
|
b491af2b57 | ||
|
|
d747a9c401 | ||
|
|
888c1ae63a | ||
|
|
5eeb257c95 | ||
|
|
ae6729cf89 | ||
|
|
6abd494915 | ||
|
|
7147a54ceb | ||
|
|
8d971172c4 | ||
|
|
37d0e323eb | ||
|
|
face5bd7f7 | ||
|
|
1daf928a77 | ||
|
|
37bab08181 | ||
|
|
6dc2324d2e | ||
|
|
850cd9aace | ||
|
|
b50ff04cf3 | ||
|
|
c8641f4479 | ||
|
|
ac7ac0cb97 | ||
|
|
be8be3397c | ||
|
|
db6b4f8912 | ||
|
|
1f3f042f32 | ||
|
|
0aaa4e6cbe | ||
|
|
0bac935dac | ||
|
|
306a29980a | ||
|
|
1e6e9f9bd0 | ||
|
|
f342db7666 | ||
|
|
41cc320145 | ||
|
|
cdb0fb9c06 | ||
|
|
94cbc6392d | ||
|
|
78a1757e5a | ||
|
|
22562d2132 | ||
|
|
51d823348d | ||
|
|
831f593b87 | ||
|
|
179e11c2ae | ||
|
|
ebba233a3a | ||
|
|
8479390d7c | ||
|
|
756f43d5f9 | ||
|
|
affd04c125 | ||
|
|
f27750e270 | ||
|
|
1dd873b706 | ||
|
|
7a60d9e54f | ||
|
|
3001dd8c2b | ||
|
|
4503aea0df | ||
|
|
09cddb8927 | ||
|
|
913eab3361 | ||
|
|
a9c7c12276 | ||
|
|
85eef232e6 | ||
|
|
07a44a88f2 | ||
|
|
48e065d971 | ||
|
|
a06d927dce | ||
|
|
fd3ed9e2f4 | ||
|
|
6042df075f | ||
|
|
c934c99d41 | ||
|
|
616926d2c1 | ||
|
|
05abc6d6f5 | ||
|
|
45244fdf68 | ||
|
|
803640ba4b | ||
|
|
8e1e3844aa | ||
|
|
8b5ab5b59f | ||
|
|
4703473ec5 | ||
|
|
8bfc2519d7 | ||
|
|
ba16904eed | ||
|
|
2841a87cc6 | ||
|
|
fab4a8a4d2 | ||
|
|
3b24c15c3d | ||
|
|
4304e01ca2 | ||
|
|
6d6c04abef | ||
|
|
49e32f3f8a | ||
|
|
9412f37e50 | ||
|
|
593eb710b4 | ||
|
|
97274ecabd | ||
|
|
74f7dd0b38 | ||
|
|
21ad357c10 | ||
|
|
087cf7e114 | ||
|
|
e604939e72 | ||
|
|
37aca6bec0 | ||
|
|
bdcafbc11c | ||
|
|
ba33e41068 | ||
|
|
4661f45a8c | ||
|
|
2091fc0dde | ||
|
|
9238dcc81a | ||
|
|
71537da4b0 | ||
|
|
ce51d2f3c0 | ||
|
|
403b7ca2be | ||
|
|
309cf0586a | ||
|
|
9f9e91eb0d | ||
|
|
1f43003cc1 | ||
|
|
8ce5f29758 | ||
|
|
8afc117aa3 | ||
|
|
cf1cc1fb72 | ||
|
|
64233ca0a7 | ||
|
|
ea59896bd6 | ||
|
|
806a0cdce3 | ||
|
|
faa83db9e4 | ||
|
|
9358a5fb37 | ||
|
|
71c9516b26 | ||
|
|
17ac91fba3 | ||
|
|
26a3c47c5c | ||
|
|
7896e50301 | ||
|
|
9584cbda90 | ||
|
|
cacc48fc09 | ||
|
|
7fbaca577b | ||
|
|
1f9dd84d1e | ||
|
|
c8ff5592b8 | ||
|
|
f875a8843d | ||
|
|
0ed5c20c57 | ||
|
|
21edbdc3ac | ||
|
|
220d937975 | ||
|
|
5f13bbc118 | ||
|
|
9672670756 | ||
|
|
5ac24a9744 | ||
|
|
99e247caa6 | ||
|
|
0c705e07db | ||
|
|
024d01d85b | ||
|
|
0666fa11b8 | ||
|
|
caa0e89114 | ||
|
|
46a7072f3f | ||
|
|
1f12915b0c | ||
|
|
a0885d5d69 | ||
|
|
5dccab701a | ||
|
|
5069c9edd9 | ||
|
|
1a584cb16e | ||
|
|
84ede6ad7a | ||
|
|
b7f03d01b8 | ||
|
|
eaceaca113 | ||
|
|
a7ac9a4769 | ||
|
|
23ed03a267 | ||
|
|
aac8c5a7ca | ||
|
|
7c8a401d97 | ||
|
|
d83332315c | ||
|
|
c2703e5024 | ||
|
|
eb7dbc88b5 | ||
|
|
e02aadf1d2 | ||
|
|
c4e6b198ae | ||
|
|
f47c8eebb7 | ||
|
|
996e2ac7c5 | ||
|
|
a67d3781a3 | ||
|
|
153a73ebba | ||
|
|
f9d6e3a035 | ||
|
|
51656e8764 | ||
|
|
9e23200bff | ||
|
|
b884643b40 | ||
|
|
5be4845710 | ||
|
|
cfa3c6abc5 | ||
|
|
f499e66032 | ||
|
|
00575ecffe | ||
|
|
cb5694d136 | ||
|
|
100b06d806 | ||
|
|
667536cea4 | ||
|
|
ba183c44c3 | ||
|
|
32e6a438be | ||
|
|
b77b0749fa | ||
|
|
6aca7dac21 | ||
|
|
8161605f1b | ||
|
|
b78607c9d8 | ||
|
|
c1101ede19 | ||
|
|
f646406822 | ||
|
|
9888443f5c | ||
|
|
cf6dfd6d36 | ||
|
|
a7786c67f1 | ||
|
|
15b7d9c80b | ||
|
|
ee4128281e | ||
|
|
3c8aefa0cb | ||
|
|
e2df73b0ac | ||
|
|
f4329a20f6 | ||
|
|
11ebc0c5db | ||
|
|
f137be42fe | ||
|
|
0ce182f044 | ||
|
|
1b50faf03e | ||
|
|
4cbbf5d952 | ||
|
|
2885db7902 | ||
|
|
acb40d2b94 | ||
|
|
fa73b50b45 | ||
|
|
2d700c3887 | ||
|
|
91251f2d57 | ||
|
|
3df4ec7c61 | ||
|
|
b1d3a1a5e3 | ||
|
|
4f31c2699d | ||
|
|
96b1ff5e38 | ||
|
|
6b5ffce9dc | ||
|
|
590eb9efd7 | ||
|
|
55c4ca66f7 | ||
|
|
56ad761b19 | ||
|
|
d129baba7a | ||
|
|
febb32b5b4 | ||
|
|
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 | ||
|
|
c586a5e20f | ||
|
|
623556bab6 | ||
|
|
de0162ea76 | ||
|
|
fc506f8538 | ||
|
|
7a992fc794 | ||
|
|
77b1980d8e | ||
|
|
6ff9517e45 | ||
|
|
ce902aac67 | ||
|
|
6f3883c9d2 | ||
|
|
9adaa6e240 |
@@ -1,12 +0,0 @@
|
|||||||
# Folders
|
|
||||||
.git/
|
|
||||||
.github/
|
|
||||||
changelog/
|
|
||||||
doc/
|
|
||||||
docker/
|
|
||||||
helpers/
|
|
||||||
|
|
||||||
# Files
|
|
||||||
.gitignore
|
|
||||||
.golangci.yml
|
|
||||||
*.md
|
|
||||||
35
.github/ISSUE_TEMPLATE/Bug.md
vendored
35
.github/ISSUE_TEMPLATE/Bug.md
vendored
@@ -32,23 +32,30 @@ Output of `restic version`
|
|||||||
--------------------------
|
--------------------------
|
||||||
|
|
||||||
|
|
||||||
How did you run restic exactly?
|
|
||||||
-------------------------------
|
What backend/service did you use to store the repository?
|
||||||
|
---------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Problem description / Steps to reproduce
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
This section should include at least:
|
This section should include at least:
|
||||||
|
|
||||||
|
* A description of the problem you are having with restic.
|
||||||
|
|
||||||
* The complete command line and any environment variables you used to
|
* The complete command line and any environment variables you used to
|
||||||
configure restic's backend access. Make sure to replace sensitive values!
|
configure restic's backend access. Make sure to replace sensitive values!
|
||||||
|
|
||||||
* The output of the commands, what restic prints gives may give us much
|
* The output of the commands, what restic prints gives may give us much
|
||||||
information to diagnose the problem!
|
information to diagnose the problem!
|
||||||
|
|
||||||
|
* The more time you spend describing an easy way to reproduce the behavior (if
|
||||||
|
this is possible), the easier it is for the project developers to fix it!
|
||||||
-->
|
-->
|
||||||
|
|
||||||
What backend/server/service did you use to store the repository?
|
|
||||||
----------------------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Expected behavior
|
Expected behavior
|
||||||
-----------------
|
-----------------
|
||||||
@@ -65,22 +72,12 @@ In this section, please try to concentrate on observations, so only describe
|
|||||||
what you observed directly.
|
what you observed directly.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
Steps to reproduce the behavior
|
|
||||||
-------------------------------
|
|
||||||
|
|
||||||
<!--
|
|
||||||
The more time you spend describing an easy way to reproduce the behavior (if
|
|
||||||
this is possible), the easier it is for the project developers to fix it!
|
|
||||||
-->
|
|
||||||
|
|
||||||
Do you have any idea what may have caused this?
|
Do you have any idea what may have caused this?
|
||||||
-----------------------------------------------
|
-----------------------------------------------
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Did something noteworthy happen on your system, Internet connection, backend services, etc?
|
||||||
Do you have an idea how to solve the issue?
|
-->
|
||||||
-------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Did restic help you today? Did it make you happy in any way?
|
Did restic help you today? Did it make you happy in any way?
|
||||||
|
|||||||
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: "monthly"
|
||||||
|
|
||||||
|
# Dependencies listed in .github/workflows/*.yml
|
||||||
|
- package-ecosystem: "github-actions"
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: "monthly"
|
||||||
66
.github/workflows/docker.yml
vendored
Normal file
66
.github/workflows/docker.yml
vendored
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
|
||||||
|
name: Create and publish a Docker image
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- 'v*'
|
||||||
|
branches:
|
||||||
|
- 'master'
|
||||||
|
|
||||||
|
env:
|
||||||
|
REGISTRY: ghcr.io
|
||||||
|
IMAGE_NAME: ${{ github.repository }}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-and-push-image:
|
||||||
|
if: github.repository == 'restic/restic'
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
packages: write
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Log in to the Container registry
|
||||||
|
uses: docker/login-action@b4bedf8053341df3b5a9f9e0f2cf4e79e27360c6
|
||||||
|
with:
|
||||||
|
registry: ${{ env.REGISTRY }}
|
||||||
|
username: ${{ github.actor }}
|
||||||
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Extract metadata (tags, labels) for Docker
|
||||||
|
id: meta
|
||||||
|
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7
|
||||||
|
with:
|
||||||
|
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
||||||
|
tags: |
|
||||||
|
type=ref,event=branch
|
||||||
|
type=semver,pattern={{version}}
|
||||||
|
type=semver,pattern={{major}}.{{minor}}
|
||||||
|
|
||||||
|
- name: Set up QEMU
|
||||||
|
uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3
|
||||||
|
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226
|
||||||
|
|
||||||
|
- name: Ensure consistent binaries
|
||||||
|
run: |
|
||||||
|
echo "removing git directory for consistency with release binaries"
|
||||||
|
rm -rf .git
|
||||||
|
# remove VCS information from release builds, keep VCS for nightly builds on master
|
||||||
|
if: github.ref != 'refs/heads/master'
|
||||||
|
|
||||||
|
- name: Build and push Docker image
|
||||||
|
uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4
|
||||||
|
with:
|
||||||
|
push: true
|
||||||
|
context: .
|
||||||
|
file: docker/Dockerfile.release
|
||||||
|
platforms: linux/386,linux/amd64,linux/arm,linux/arm64
|
||||||
|
pull: true
|
||||||
|
tags: ${{ steps.meta.outputs.tags }}
|
||||||
|
labels: ${{ steps.meta.outputs.labels }}
|
||||||
133
.github/workflows/tests.yml
vendored
133
.github/workflows/tests.yml
vendored
@@ -7,9 +7,13 @@ on:
|
|||||||
|
|
||||||
# run tests for all pull requests
|
# run tests for all pull requests
|
||||||
pull_request:
|
pull_request:
|
||||||
|
merge_group:
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
env:
|
env:
|
||||||
latest_go: "1.19.x"
|
latest_go: "1.21.x"
|
||||||
GO111MODULE: on
|
GO111MODULE: on
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
@@ -19,47 +23,36 @@ jobs:
|
|||||||
# list of jobs to run:
|
# list of jobs to run:
|
||||||
include:
|
include:
|
||||||
- job_name: Windows
|
- job_name: Windows
|
||||||
go: 1.19.x
|
go: 1.21.x
|
||||||
os: windows-latest
|
os: windows-latest
|
||||||
install_verb: install
|
|
||||||
|
|
||||||
- job_name: macOS
|
- job_name: macOS
|
||||||
go: 1.19.x
|
go: 1.21.x
|
||||||
os: macOS-latest
|
os: macOS-latest
|
||||||
test_fuse: false
|
test_fuse: false
|
||||||
install_verb: install
|
|
||||||
|
|
||||||
- job_name: Linux
|
- job_name: Linux
|
||||||
go: 1.19.x
|
go: 1.21.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
|
||||||
install_verb: install
|
|
||||||
|
|
||||||
- job_name: Linux
|
- job_name: Linux (race)
|
||||||
go: 1.18.x
|
go: 1.21.x
|
||||||
os: ubuntu-latest
|
os: ubuntu-latest
|
||||||
test_fuse: true
|
test_fuse: true
|
||||||
install_verb: install
|
test_opts: "-race"
|
||||||
|
|
||||||
- job_name: Linux
|
- job_name: Linux
|
||||||
go: 1.17.x
|
go: 1.20.x
|
||||||
os: ubuntu-latest
|
os: ubuntu-latest
|
||||||
test_fuse: true
|
test_fuse: true
|
||||||
install_verb: install
|
|
||||||
|
|
||||||
- job_name: Linux
|
- job_name: Linux
|
||||||
go: 1.16.x
|
go: 1.19.x
|
||||||
os: ubuntu-latest
|
os: ubuntu-latest
|
||||||
test_fuse: true
|
test_fuse: true
|
||||||
install_verb: get
|
|
||||||
|
|
||||||
- job_name: Linux
|
|
||||||
go: 1.15.x
|
|
||||||
os: ubuntu-latest
|
|
||||||
test_fuse: true
|
|
||||||
install_verb: get
|
|
||||||
|
|
||||||
name: ${{ matrix.job_name }} Go ${{ matrix.go }}
|
name: ${{ matrix.job_name }} Go ${{ matrix.go }}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
@@ -69,14 +62,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@v4
|
||||||
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 ${{ matrix.install_verb }} github.com/restic/rest-server/cmd/rest-server@latest
|
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
|
||||||
@@ -98,7 +91,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'
|
||||||
|
|
||||||
@@ -108,7 +101,7 @@ jobs:
|
|||||||
$ProgressPreference = 'SilentlyContinue'
|
$ProgressPreference = 'SilentlyContinue'
|
||||||
|
|
||||||
echo "build Go tools"
|
echo "build Go tools"
|
||||||
go ${{ matrix.install_verb }} 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
|
||||||
@@ -120,7 +113,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"
|
||||||
@@ -142,17 +135,25 @@ 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@v4
|
||||||
|
|
||||||
- name: Build with build.go
|
- name: Build with build.go
|
||||||
run: |
|
run: |
|
||||||
go run build.go
|
go run build.go
|
||||||
|
|
||||||
|
- name: Minimal test
|
||||||
|
run: |
|
||||||
|
./restic init
|
||||||
|
./restic backup .
|
||||||
|
env:
|
||||||
|
RESTIC_REPOSITORY: ../testrepo
|
||||||
|
RESTIC_PASSWORD: password
|
||||||
|
|
||||||
- name: Run local Tests
|
- name: Run local Tests
|
||||||
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:
|
||||||
@@ -193,7 +194,9 @@ 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.repository == 'restic/restic' && 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: |
|
||||||
@@ -207,70 +210,53 @@ jobs:
|
|||||||
cross_compile:
|
cross_compile:
|
||||||
strategy:
|
strategy:
|
||||||
|
|
||||||
# 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:
|
subset:
|
||||||
- "linux/386 linux/amd64 linux/arm linux/arm64 linux/ppc64le linux/mips linux/mipsle linux/mips64 linux/mips64le linux/s390x \
|
- "0/3"
|
||||||
openbsd/386 openbsd/amd64"
|
- "1/3"
|
||||||
|
- "2/3"
|
||||||
- "freebsd/386 freebsd/amd64 freebsd/arm \
|
|
||||||
aix/ppc64 \
|
|
||||||
darwin/amd64 darwin/arm64 \
|
|
||||||
netbsd/386 netbsd/amd64 \
|
|
||||||
windows/386 windows/amd64 \
|
|
||||||
solaris/amd64"
|
|
||||||
|
|
||||||
env:
|
env:
|
||||||
GOPROXY: https://proxy.golang.org
|
GOPROXY: https://proxy.golang.org
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
name: Cross Compile for ${{ matrix.targets }}
|
name: Cross Compile for subset ${{ matrix.subset }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Set up Go ${{ env.latest_go }}
|
- name: Set up Go ${{ env.latest_go }}
|
||||||
uses: actions/setup-go@v2
|
uses: actions/setup-go@v4
|
||||||
with:
|
with:
|
||||||
go-version: ${{ env.latest_go }}
|
go-version: ${{ env.latest_go }}
|
||||||
|
|
||||||
- name: Install gox
|
|
||||||
run: |
|
|
||||||
go install github.com/mitchellh/gox@latest
|
|
||||||
|
|
||||||
- name: Check out code
|
- name: Check out code
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Cross-compile with gox for ${{ matrix.targets }}
|
- name: Cross-compile for subset ${{ matrix.subset }}
|
||||||
env:
|
|
||||||
GOFLAGS: "-trimpath"
|
|
||||||
GOX_ARCHS: "${{ matrix.targets }}"
|
|
||||||
run: |
|
run: |
|
||||||
mkdir build-output
|
mkdir build-output build-output-debug
|
||||||
gox -parallel 2 -verbose -osarch "$GOX_ARCHS" -output "build-output/{{.Dir}}_{{.OS}}_{{.Arch}}" ./cmd/restic
|
go run ./helpers/build-release-binaries/main.go -o build-output -s . --platform-subset ${{ matrix.subset }}
|
||||||
gox -parallel 2 -verbose -osarch "$GOX_ARCHS" -tags debug -output "build-output/{{.Dir}}_{{.OS}}_{{.Arch}}_debug" ./cmd/restic
|
go run ./helpers/build-release-binaries/main.go -o build-output-debug -s . --platform-subset ${{ matrix.subset }} --tags debug
|
||||||
|
|
||||||
lint:
|
lint:
|
||||||
name: lint
|
name: lint
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Set up Go ${{ env.latest_go }}
|
- name: Set up Go ${{ env.latest_go }}
|
||||||
uses: actions/setup-go@v2
|
uses: actions/setup-go@v4
|
||||||
with:
|
with:
|
||||||
go-version: ${{ env.latest_go }}
|
go-version: ${{ env.latest_go }}
|
||||||
|
|
||||||
- name: Check out code
|
- name: Check out code
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- 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.48
|
version: v1.52.2
|
||||||
# Optional: show only new issues if it's a pull request. The default value is `false`.
|
|
||||||
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
|
||||||
@@ -283,16 +269,31 @@ jobs:
|
|||||||
go mod tidy
|
go mod tidy
|
||||||
git diff --exit-code go.mod go.sum
|
git diff --exit-code go.mod go.sum
|
||||||
|
|
||||||
|
analyze:
|
||||||
|
name: Analyze results
|
||||||
|
needs: [test, cross_compile, lint]
|
||||||
|
if: always()
|
||||||
|
|
||||||
|
permissions: # no need to access code
|
||||||
|
contents: none
|
||||||
|
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Decide whether the needed jobs succeeded or failed
|
||||||
|
uses: re-actors/alls-green@05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe
|
||||||
|
with:
|
||||||
|
jobs: ${{ toJSON(needs) }}
|
||||||
|
|
||||||
docker:
|
docker:
|
||||||
name: docker
|
name: docker
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Check out code
|
- name: Check out code
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Docker meta
|
- name: Docker meta
|
||||||
id: meta
|
id: meta
|
||||||
uses: docker/metadata-action@v3
|
uses: docker/metadata-action@v4
|
||||||
with:
|
with:
|
||||||
# list of Docker images to use as base name for tags
|
# list of Docker images to use as base name for tags
|
||||||
images: |
|
images: |
|
||||||
@@ -308,14 +309,14 @@ jobs:
|
|||||||
type=sha
|
type=sha
|
||||||
|
|
||||||
- name: Set up QEMU
|
- name: Set up QEMU
|
||||||
uses: docker/setup-qemu-action@v1
|
uses: docker/setup-qemu-action@v3
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
uses: docker/setup-buildx-action@v1
|
uses: docker/setup-buildx-action@v3
|
||||||
|
|
||||||
- name: Build and push
|
- name: Build and push
|
||||||
id: docker_build
|
id: docker_build
|
||||||
uses: docker/build-push-action@v2
|
uses: docker/build-push-action@v4
|
||||||
with:
|
with:
|
||||||
push: false
|
push: false
|
||||||
context: .
|
context: .
|
||||||
|
|||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,3 +1,4 @@
|
|||||||
/restic
|
/restic
|
||||||
|
/restic.exe
|
||||||
/.vagrant
|
/.vagrant
|
||||||
/.vscode
|
/.vscode
|
||||||
|
|||||||
@@ -10,13 +10,10 @@ linters:
|
|||||||
# make sure all errors returned by functions are handled
|
# make sure all errors returned by functions are handled
|
||||||
- errcheck
|
- errcheck
|
||||||
|
|
||||||
# find unused code
|
|
||||||
- deadcode
|
|
||||||
|
|
||||||
# show how code can be simplified
|
# show how code can be simplified
|
||||||
- gosimple
|
- gosimple
|
||||||
|
|
||||||
# # make sure code is formatted
|
# make sure code is formatted
|
||||||
- gofmt
|
- gofmt
|
||||||
|
|
||||||
# examine code and report suspicious constructs, such as Printf calls whose
|
# examine code and report suspicious constructs, such as Printf calls whose
|
||||||
@@ -35,12 +32,6 @@ linters:
|
|||||||
# find unused variables, functions, structs, types, etc.
|
# find unused variables, functions, structs, types, etc.
|
||||||
- unused
|
- unused
|
||||||
|
|
||||||
# find unused struct fields
|
|
||||||
- structcheck
|
|
||||||
|
|
||||||
# find unused global variables
|
|
||||||
- varcheck
|
|
||||||
|
|
||||||
# parse and typecheck code
|
# parse and typecheck code
|
||||||
- typecheck
|
- typecheck
|
||||||
|
|
||||||
@@ -55,3 +46,8 @@ issues:
|
|||||||
- exported (function|method|var|type|const) .* should have comment or be unexported
|
- exported (function|method|var|type|const) .* should have comment or be unexported
|
||||||
# revive: 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"
|
||||||
|
# staticcheck: there's no easy way to replace these packages
|
||||||
|
- "SA1019: \"golang.org/x/crypto/poly1305\" is deprecated"
|
||||||
|
- "SA1019: \"golang.org/x/crypto/openpgp\" is deprecated"
|
||||||
|
|||||||
2973
CHANGELOG.md
2973
CHANGELOG.md
File diff suppressed because it is too large
Load Diff
@@ -58,6 +58,19 @@ Please be aware that the debug log file will contain potentially sensitive
|
|||||||
things like file and directory names, so please either redact it before
|
things like file and directory names, so please either redact it before
|
||||||
uploading it somewhere or post only the parts that are really relevant.
|
uploading it somewhere or post only the parts that are really relevant.
|
||||||
|
|
||||||
|
If restic gets stuck, please also include a stacktrace in the description.
|
||||||
|
On non-Windows systems, you can send a SIGQUIT signal to restic or press
|
||||||
|
`Ctrl-\` to achieve the same result. This causes restic to print a stacktrace
|
||||||
|
and then exit immediatelly. This will not damage your repository, however,
|
||||||
|
it might be necessary to manually clean up stale lock files using
|
||||||
|
`restic unlock`.
|
||||||
|
|
||||||
|
On Windows, please set the environment variable `RESTIC_DEBUG_STACKTRACE_SIGINT`
|
||||||
|
to `true` and press `Ctrl-C` to create a stacktrace.
|
||||||
|
|
||||||
|
If you think restic uses too much memory or a too large cache directory, then
|
||||||
|
please include the output of `restic stats --mode debug`.
|
||||||
|
|
||||||
|
|
||||||
Development Environment
|
Development Environment
|
||||||
=======================
|
=======================
|
||||||
@@ -76,12 +89,42 @@ 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
|
||||||
|
|
||||||
|
To create a debug build use:
|
||||||
|
|
||||||
|
$ go build -tags debug ./cmd/restic
|
||||||
|
|
||||||
You can run all tests with the following command:
|
You can run all tests with the following command:
|
||||||
|
|
||||||
$ go test ./...
|
$ go test ./...
|
||||||
|
|
||||||
|
|
||||||
|
Performance and Memory Usage Issues
|
||||||
|
===================================
|
||||||
|
|
||||||
|
Debug builds of restic support the `--block-profile`, `--cpu-profile`,
|
||||||
|
`--mem-profile`, and `--trace-profile` options which collect performance data
|
||||||
|
that later on can be analyzed using the go tools:
|
||||||
|
|
||||||
|
$ restic --cpu-profile . [...]
|
||||||
|
$ go tool pprof -http localhost:12345 cpu.pprof
|
||||||
|
|
||||||
|
To analyze a trace profile use `go tool trace -http=localhost:12345 trace.out`.
|
||||||
|
|
||||||
|
As the memory usage of restic changes over time, it may be useful to capture a
|
||||||
|
snapshot of the current heap. This is possible using then `--listen-profile`
|
||||||
|
option. Then while restic runs you can query and afterwards analyze the heap statistics.
|
||||||
|
|
||||||
|
$ restic --listen-profile localhost:12345 [...]
|
||||||
|
$ curl http://localhost:12345/debug/pprof/heap -o heap.pprof
|
||||||
|
$ go tool pprof -http localhost:12345 heap.pprof
|
||||||
|
|
||||||
|
Further useful tools are setting the environment variable `GODEBUG=gctrace=1`,
|
||||||
|
which provides information about garbage collector runs. For a graphical variant
|
||||||
|
combine this with gcvis.
|
||||||
|
|
||||||
|
|
||||||
Providing Patches
|
Providing Patches
|
||||||
=================
|
=================
|
||||||
|
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ release. Instructions on how to do that are contained in the
|
|||||||
News
|
News
|
||||||
----
|
----
|
||||||
|
|
||||||
You can follow the restic project on Twitter [@resticbackup](https://twitter.com/resticbackup) or by subscribing to
|
You can follow the restic project on Mastodon [@resticbackup](https://fosstodon.org/@restic) or by subscribing to
|
||||||
the [project blog](https://restic.net/blog/).
|
the [project blog](https://restic.net/blog/).
|
||||||
|
|
||||||
License
|
License
|
||||||
|
|||||||
21
build.go
21
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
|
||||||
//
|
//
|
||||||
@@ -43,7 +43,6 @@ package main
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"io/ioutil"
|
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
@@ -59,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: 14, 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.
|
||||||
@@ -179,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 ""
|
||||||
@@ -319,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)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -385,6 +380,12 @@ func main() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
solarisMinVersion := GoVersion{Major: 1, Minor: 20, Patch: 0}
|
||||||
|
if env["GOARCH"] == "solaris" && !goVersion.AtLeast(solarisMinVersion) {
|
||||||
|
fmt.Fprintf(os.Stderr, "Detected version %s is too old, restic requires at least %s for Solaris\n", goVersion, solarisMinVersion)
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
verbosePrintf("detected Go version %v\n", goVersion)
|
verbosePrintf("detected Go version %v\n", goVersion)
|
||||||
|
|
||||||
preserveSymbols := false
|
preserveSymbols := false
|
||||||
|
|||||||
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
|
||||||
11
changelog/0.15.0_2023-01-12/issue-4033
Normal file
11
changelog/0.15.0_2023-01-12/issue-4033
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
Change: Don't print skipped snapshots by default in `copy` command
|
||||||
|
|
||||||
|
The `copy` command used to print each snapshot that was skipped because it
|
||||||
|
already existed in the target repository. The amount of this output could
|
||||||
|
practically bury the list of snapshots that were actually copied.
|
||||||
|
|
||||||
|
From now on, the skipped snapshots are by default not printed at all, but
|
||||||
|
this can be re-enabled by increasing the verbosity level of the command.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/4033
|
||||||
|
https://github.com/restic/restic/pull/4066
|
||||||
10
changelog/0.15.0_2023-01-12/issue-4085
Normal file
10
changelog/0.15.0_2023-01-12/issue-4085
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Bugfix: Make `init` ignore "Access Denied" errors when creating S3 buckets
|
||||||
|
|
||||||
|
In restic 0.9.0 through 0.13.0, the `init` command ignored some permission
|
||||||
|
errors from S3 backends when trying to check for bucket existence, so that
|
||||||
|
manually created buckets with custom permissions could be used for backups.
|
||||||
|
|
||||||
|
This feature became broken in 0.14.0, but has now been restored again.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/4085
|
||||||
|
https://github.com/restic/restic/pull/4086
|
||||||
10
changelog/0.15.0_2023-01-12/issue-4103
Normal file
10
changelog/0.15.0_2023-01-12/issue-4103
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Bugfix: Don't generate negative UIDs and GIDs in tar files from `dump`
|
||||||
|
|
||||||
|
When using a 32-bit build of restic, the `dump` command could in some cases
|
||||||
|
create tar files containing negative UIDs and GIDs, which cannot be read by
|
||||||
|
GNU tar. This corner case especially applies to backups from stdin on Windows.
|
||||||
|
|
||||||
|
This is now fixed such that `dump` creates valid tar files in these cases too.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/4103
|
||||||
|
https://github.com/restic/restic/pull/4104
|
||||||
17
changelog/0.15.0_2023-01-12/issue-79
Normal file
17
changelog/0.15.0_2023-01-12/issue-79
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
Enhancement: Restore files with long runs of zeros as sparse files
|
||||||
|
|
||||||
|
When using `restore --sparse`, the restorer may now write files containing long
|
||||||
|
runs of zeros as sparse files (also called files with holes), where the zeros
|
||||||
|
are not actually written to disk.
|
||||||
|
|
||||||
|
How much space is saved by writing sparse files depends on the operating
|
||||||
|
system, file system and the distribution of zeros in the file.
|
||||||
|
|
||||||
|
During backup restic still reads the whole file including sparse regions, but
|
||||||
|
with optimized processing speed of sparse regions.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/79
|
||||||
|
https://github.com/restic/restic/issues/3903
|
||||||
|
https://github.com/restic/restic/pull/2601
|
||||||
|
https://github.com/restic/restic/pull/3854
|
||||||
|
https://forum.restic.net/t/sparse-file-support/1264
|
||||||
7
changelog/0.15.0_2023-01-12/pull-2750
Normal file
7
changelog/0.15.0_2023-01-12/pull-2750
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
Enhancement: Make backup file read concurrency configurable
|
||||||
|
|
||||||
|
The `backup` command now supports a `--read-concurrency` option which allows
|
||||||
|
tuning restic for very fast storage like NVMe disks by controlling the number
|
||||||
|
of concurrent file reads during the backup process.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/2750
|
||||||
8
changelog/0.15.0_2023-01-12/pull-3780
Normal file
8
changelog/0.15.0_2023-01-12/pull-3780
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Bugfix: Make `restore` replace existing symlinks
|
||||||
|
|
||||||
|
When restoring a symlink, restic used to report an error if the target path
|
||||||
|
already existed. This has now been fixed such that the potentially existing
|
||||||
|
target path is first removed before the symlink is restored.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/2578
|
||||||
|
https://github.com/restic/restic/pull/3780
|
||||||
6
changelog/0.15.0_2023-01-12/pull-3899
Normal file
6
changelog/0.15.0_2023-01-12/pull-3899
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
Enhancement: Optimize prune memory usage
|
||||||
|
|
||||||
|
The `prune` command needs large amounts of memory in order to determine what to
|
||||||
|
keep and what to remove. This is now optimized to use up to 30% less memory.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/3899
|
||||||
6
changelog/0.15.0_2023-01-12/pull-3905
Normal file
6
changelog/0.15.0_2023-01-12/pull-3905
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
Enhancement: Improve speed of parent snapshot detection in `backup` command
|
||||||
|
|
||||||
|
Backing up a large number of files using `--files-from-verbatim` or `--files-from-raw`
|
||||||
|
options could require a long time to find the parent snapshot. This has been improved.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/3905
|
||||||
12
changelog/0.15.0_2023-01-12/pull-3915
Normal file
12
changelog/0.15.0_2023-01-12/pull-3915
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
Enhancement: Add compression statistics to the `stats` command
|
||||||
|
|
||||||
|
When executed with `--mode raw-data` on a repository that supports compression,
|
||||||
|
the `stats` command now calculates and displays, for the selected repository or
|
||||||
|
snapshots: the uncompressed size of the data; the compression progress
|
||||||
|
(percentage of data that has been compressed); the compression ratio of the
|
||||||
|
compressed data; the total space saving.
|
||||||
|
|
||||||
|
It also takes into account both the compressed and uncompressed data if the
|
||||||
|
repository is only partially compressed.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/3915
|
||||||
6
changelog/0.15.0_2023-01-12/pull-3925
Normal file
6
changelog/0.15.0_2023-01-12/pull-3925
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
Enhancement: Provide command completion for PowerShell
|
||||||
|
|
||||||
|
Restic already provided generation of completion files for bash, fish and zsh.
|
||||||
|
Now powershell is supported, too.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/3925/files
|
||||||
10
changelog/0.15.0_2023-01-12/pull-3931
Normal file
10
changelog/0.15.0_2023-01-12/pull-3931
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Enhancement: Allow `backup` file tree scanner to be disabled
|
||||||
|
|
||||||
|
The `backup` command walks the file tree in a separate scanner process to find
|
||||||
|
the total size and file/directory count, and uses this to provide an ETA. This
|
||||||
|
can slow down backups, especially of network filesystems.
|
||||||
|
|
||||||
|
The command now has a new option `--no-scan` which can be used to disable this
|
||||||
|
scanning in order to speed up backups when needed.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/3931
|
||||||
9
changelog/0.15.0_2023-01-12/pull-3943
Normal file
9
changelog/0.15.0_2023-01-12/pull-3943
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Enhancement: Ignore additional/unknown files in repository
|
||||||
|
|
||||||
|
If a restic repository had additional files in it (not created by restic),
|
||||||
|
commands like `find` and `restore` could become confused and fail with an
|
||||||
|
`multiple IDs with prefix "12345678" found` error. These commands now
|
||||||
|
ignore such additional files.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/3943
|
||||||
|
https://forum.restic.net/t/which-protocol-should-i-choose-for-remote-linux-backups/5446/17
|
||||||
7
changelog/0.15.0_2023-01-12/pull-3951
Normal file
7
changelog/0.15.0_2023-01-12/pull-3951
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
Bugfix: Make `ls` return exit code 1 if snapshot cannot be loaded
|
||||||
|
|
||||||
|
The `ls` command used to show a warning and return exit code 0 when failing
|
||||||
|
to load a snapshot. This has now been fixed such that it instead returns exit
|
||||||
|
code 1 (still showing a warning).
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/3951
|
||||||
9
changelog/0.15.0_2023-01-12/pull-3955
Normal file
9
changelog/0.15.0_2023-01-12/pull-3955
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Enhancement: Improve `backup` performance for small files
|
||||||
|
|
||||||
|
When backing up small files restic was slower than it could be. In particular
|
||||||
|
this affected backups using maximum compression.
|
||||||
|
|
||||||
|
This has been fixed by reworking the internal parallelism of the backup
|
||||||
|
command, making it back up small files around two times faster.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/3955
|
||||||
7
changelog/0.15.0_2023-01-12/pull-4041
Normal file
7
changelog/0.15.0_2023-01-12/pull-4041
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
Change: Update dependencies and require Go 1.18 or newer
|
||||||
|
|
||||||
|
Most dependencies have been updated. Since some libraries require newer language
|
||||||
|
features, support for Go 1.15-1.17 has been dropped, which means that restic now
|
||||||
|
requires at least Go 1.18 to build.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/4041
|
||||||
11
changelog/0.15.0_2023-01-12/pull-4100
Normal file
11
changelog/0.15.0_2023-01-12/pull-4100
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
Bugfix: Make `self-update` enabled by default only in release builds
|
||||||
|
|
||||||
|
The `self-update` command was previously included by default in all builds of
|
||||||
|
restic as opposed to only in official release builds, even if the `selfupdate`
|
||||||
|
tag was not explicitly enabled when building.
|
||||||
|
|
||||||
|
This has now been corrected, and the `self-update` command is only available
|
||||||
|
if restic was built with `-tags selfupdate` (as done for official release
|
||||||
|
builds by `build.go`).
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/4100
|
||||||
10
changelog/0.15.1_2023-01-30/issue-3750
Normal file
10
changelog/0.15.1_2023-01-30/issue-3750
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Bugfix: Remove `b2_download_file_by_name: 404` warning from B2 backend
|
||||||
|
|
||||||
|
In some cases the B2 backend could print `b2_download_file_by_name: 404: :
|
||||||
|
b2.b2err` warnings. These are only debug messages and can be safely ignored.
|
||||||
|
|
||||||
|
Restic now uses an updated library for accessing B2, which removes the warning.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3750
|
||||||
|
https://github.com/restic/restic/issues/4144
|
||||||
|
https://github.com/restic/restic/pull/4146
|
||||||
7
changelog/0.15.1_2023-01-30/issue-4147
Normal file
7
changelog/0.15.1_2023-01-30/issue-4147
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
Bugfix: Make `prune --quiet` not print progress bar
|
||||||
|
|
||||||
|
A regression in restic 0.15.0 caused `prune --quiet` to show a progress bar
|
||||||
|
while deciding how to process each pack files. This has now been fixed.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/4147
|
||||||
|
https://github.com/restic/restic/pull/4153
|
||||||
19
changelog/0.15.1_2023-01-30/pull-4152
Normal file
19
changelog/0.15.1_2023-01-30/pull-4152
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
Enhancement: Ignore empty lock files
|
||||||
|
|
||||||
|
With restic 0.15.0 the checks for stale locks became much stricter than before.
|
||||||
|
In particular, empty or unreadable locks were no longer silently ignored. This
|
||||||
|
made restic to complain with `Load(<lock/1234567812>, 0, 0) returned error,
|
||||||
|
retrying after 552.330144ms: load(<lock/1234567812>): invalid data returned`
|
||||||
|
and fail in the end.
|
||||||
|
|
||||||
|
The error message is now clarified and the implementation changed to ignore
|
||||||
|
empty lock files which are sometimes created as the result of a failed uploads
|
||||||
|
on some backends.
|
||||||
|
|
||||||
|
Please note that unreadable lock files still have to cleaned up manually. To do
|
||||||
|
so, you can run `restic unlock --remove-all` which removes all existing lock
|
||||||
|
files. But first make sure that no other restic process is currently using the
|
||||||
|
repository.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/4143
|
||||||
|
https://github.com/restic/restic/pull/4152
|
||||||
13
changelog/0.15.1_2023-01-30/pull-4163
Normal file
13
changelog/0.15.1_2023-01-30/pull-4163
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
Bugfix: Make `self-update --output` work with new filename on Windows
|
||||||
|
|
||||||
|
Since restic 0.14.0 the `self-update` command did not work when a custom output
|
||||||
|
filename was specified via the `--output` option. This has now been fixed.
|
||||||
|
|
||||||
|
As a workaround, either use an older restic version to run the self-update or
|
||||||
|
create an empty file with the output filename before updating e.g. using CMD:
|
||||||
|
|
||||||
|
`type nul > new-file.exe`
|
||||||
|
`restic self-update --output new-file.exe`
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/4163
|
||||||
|
https://forum.restic.net/t/self-update-windows-started-failing-after-release-of-0-15/5836
|
||||||
6
changelog/0.15.1_2023-01-30/pull-4167
Normal file
6
changelog/0.15.1_2023-01-30/pull-4167
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
Bugfix: Add missing ETA in `backup` progress bar
|
||||||
|
|
||||||
|
A regression in restic 0.15.0 caused the ETA to be missing from the progress
|
||||||
|
bar displayed by the `backup` command. This has now been fixed.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/4167
|
||||||
12
changelog/0.15.2_2023-04-24/issue-2260
Normal file
12
changelog/0.15.2_2023-04-24/issue-2260
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
Bugfix: Sanitize filenames printed by `backup` during processing
|
||||||
|
|
||||||
|
The `backup` command would previously not sanitize the filenames it printed
|
||||||
|
during processing, potentially causing newlines or terminal control characters
|
||||||
|
to mangle the status output or even change the state of a terminal.
|
||||||
|
|
||||||
|
Filenames are now checked and quoted if they contain non-printable or
|
||||||
|
non-Unicode characters.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/2260
|
||||||
|
https://github.com/restic/restic/issues/4191
|
||||||
|
https://github.com/restic/restic/pull/4192
|
||||||
8
changelog/0.15.2_2023-04-24/issue-4211
Normal file
8
changelog/0.15.2_2023-04-24/issue-4211
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Bugfix: Make `dump` interpret `--host` and `--path` correctly
|
||||||
|
|
||||||
|
A regression in restic 0.15.0 caused `dump` to confuse its `--host=<host>` and
|
||||||
|
`--path=<path>` options: it looked for snapshots with paths called `<host>`
|
||||||
|
from hosts called `<path>`. It now treats the options as intended.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/4211
|
||||||
|
https://github.com/restic/restic/pull/4212
|
||||||
11
changelog/0.15.2_2023-04-24/issue-4239
Normal file
11
changelog/0.15.2_2023-04-24/issue-4239
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
Bugfix: Correct number of blocks reported in mount point
|
||||||
|
|
||||||
|
Restic mount points reported an incorrect number of 512-byte (POSIX standard)
|
||||||
|
blocks for files and links due to a rounding bug. In particular, empty files
|
||||||
|
were reported as taking one block instead of zero.
|
||||||
|
|
||||||
|
The rounding is now fixed: the number of blocks reported is the file size
|
||||||
|
(or link target size) divided by 512 and rounded up to a whole number.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/4239
|
||||||
|
https://github.com/restic/restic/pull/4240
|
||||||
18
changelog/0.15.2_2023-04-24/issue-4253
Normal file
18
changelog/0.15.2_2023-04-24/issue-4253
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
Bugfix: Minimize risk of spurious filesystem loops with `mount`
|
||||||
|
|
||||||
|
When a backup contains a directory that has the same name as its parent, say
|
||||||
|
`a/b/b`, and the GNU `find` command was run on this backup in a restic mount,
|
||||||
|
`find` would refuse to traverse the lowest `b` directory, instead printing
|
||||||
|
`File system loop detected`. This was due to the way the restic mount command
|
||||||
|
generates inode numbers for directories in the mount point.
|
||||||
|
|
||||||
|
The rule for generating these inode numbers was changed in 0.15.0. It has
|
||||||
|
now been changed again to avoid this issue. A perfect rule does not exist,
|
||||||
|
but the probability of this behavior occurring is now extremely small.
|
||||||
|
|
||||||
|
When it does occur, the mount point is not broken, and scripts that traverse
|
||||||
|
the mount point should work as long as they don't rely on inode numbers for
|
||||||
|
detecting filesystem loops.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/4253
|
||||||
|
https://github.com/restic/restic/pull/4255
|
||||||
4
changelog/0.15.2_2023-04-24/issue-4275
Normal file
4
changelog/0.15.2_2023-04-24/issue-4275
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
Security: Update golang.org/x/net to address CVE-2022-41723
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/4275
|
||||||
|
https://github.com/restic/restic/pull/4213
|
||||||
6
changelog/0.15.2_2023-04-24/pull-4180
Normal file
6
changelog/0.15.2_2023-04-24/pull-4180
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
Enhancement: Add release binaries for riscv64 architecture on Linux
|
||||||
|
|
||||||
|
Builds for the `riscv64` architecture on Linux are now included in the
|
||||||
|
release binaries.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/4180
|
||||||
5
changelog/0.15.2_2023-04-24/pull-4219
Normal file
5
changelog/0.15.2_2023-04-24/pull-4219
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
Enhancement: Upgrade Minio to version 7.0.49
|
||||||
|
|
||||||
|
The upgraded version now allows use of the `ap-southeast-4` region (Melbourne).
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/4219
|
||||||
7
changelog/0.16.0_2023-07-31/issue-1495
Normal file
7
changelog/0.16.0_2023-07-31/issue-1495
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
Enhancement: Sort snapshots by timestamp in `restic find`
|
||||||
|
|
||||||
|
The `find` command used to print snapshots in an arbitrary order. Restic now
|
||||||
|
prints snapshots sorted by timestamp.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/1495
|
||||||
|
https://github.com/restic/restic/pull/4409
|
||||||
21
changelog/0.16.0_2023-07-31/issue-1759
Normal file
21
changelog/0.16.0_2023-07-31/issue-1759
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
Enhancement: Add `repair index` and `repair snapshots` commands
|
||||||
|
|
||||||
|
The `rebuild-index` command has been renamed to `repair index`. The old name
|
||||||
|
will still work, but is deprecated.
|
||||||
|
|
||||||
|
When a snapshot was damaged, the only option up to now was to completely forget
|
||||||
|
the snapshot, even if only some unimportant files in it were damaged and other
|
||||||
|
files were still fine.
|
||||||
|
|
||||||
|
Restic now has a `repair snapshots` command, which can salvage any non-damaged
|
||||||
|
files and parts of files in the snapshots by removing damaged directories and
|
||||||
|
missing file contents. Please note that the damaged data may still be lost
|
||||||
|
and see the "Troubleshooting" section in the documentation for more details.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/1759
|
||||||
|
https://github.com/restic/restic/issues/1714
|
||||||
|
https://github.com/restic/restic/issues/1798
|
||||||
|
https://github.com/restic/restic/issues/2334
|
||||||
|
https://github.com/restic/restic/pull/2876
|
||||||
|
https://forum.restic.net/t/corrupted-repo-how-to-repair/799
|
||||||
|
https://forum.restic.net/t/recovery-options-for-damaged-repositories/1571
|
||||||
8
changelog/0.16.0_2023-07-31/issue-1926
Normal file
8
changelog/0.16.0_2023-07-31/issue-1926
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Enhancement: Allow certificate paths to be passed through environment variables
|
||||||
|
|
||||||
|
Restic will now read paths to certificates from the environment variables
|
||||||
|
`RESTIC_CACERT` or `RESTIC_TLS_CLIENT_CERT` if `--cacert` or `--tls-client-cert`
|
||||||
|
are not specified.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/1926
|
||||||
|
https://github.com/restic/restic/pull/4384
|
||||||
11
changelog/0.16.0_2023-07-31/issue-2359
Normal file
11
changelog/0.16.0_2023-07-31/issue-2359
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
Enhancement: Provide multi-platform Docker images
|
||||||
|
|
||||||
|
The official Docker images are now built for the architectures linux/386,
|
||||||
|
linux/amd64, linux/arm and linux/arm64.
|
||||||
|
|
||||||
|
As an alternative to the Docker Hub, the Docker images are also
|
||||||
|
available on ghcr.io, the GitHub Container Registry.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/2359
|
||||||
|
https://github.com/restic/restic/issues/4269
|
||||||
|
https://github.com/restic/restic/pull/4364
|
||||||
10
changelog/0.16.0_2023-07-31/issue-2468
Normal file
10
changelog/0.16.0_2023-07-31/issue-2468
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Enhancement: Add support for non-global Azure clouds
|
||||||
|
|
||||||
|
The `azure` backend previously only supported storages using the global domain
|
||||||
|
`core.windows.net`. This meant that backups to other domains such as Azure
|
||||||
|
China (`core.chinacloudapi.cn`) or Azure Germany (`core.cloudapi.de`) were
|
||||||
|
not supported. Restic now allows overriding the global domain using the
|
||||||
|
environment variable `AZURE_ENDPOINT_SUFFIX`.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/2468
|
||||||
|
https://github.com/restic/restic/pull/4387
|
||||||
10
changelog/0.16.0_2023-07-31/issue-2565
Normal file
10
changelog/0.16.0_2023-07-31/issue-2565
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Bugfix: Support "unlimited" in `forget --keep-*` options
|
||||||
|
|
||||||
|
Restic would previously forget snapshots that should have been kept when a
|
||||||
|
negative value was passed to the `--keep-*` options. Negative values are now
|
||||||
|
forbidden. To keep all snapshots, the special value `unlimited` is now
|
||||||
|
supported. For example, `--keep-monthly unlimited` will keep all monthly
|
||||||
|
snapshots.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/2565
|
||||||
|
https://github.com/restic/restic/pull/4234
|
||||||
12
changelog/0.16.0_2023-07-31/issue-3311
Normal file
12
changelog/0.16.0_2023-07-31/issue-3311
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
Bugfix: Support non-UTF8 paths as symlink target
|
||||||
|
|
||||||
|
Earlier restic versions did not correctly `backup` and `restore` symlinks that
|
||||||
|
contain a non-UTF8 target. Note that this only affected systems that still use
|
||||||
|
a non-Unicode encoding for filesystem paths.
|
||||||
|
|
||||||
|
The repository format is now extended to add support for such symlinks. Please
|
||||||
|
note that snapshots must have been created with at least restic version 0.16.0
|
||||||
|
for `restore` to correctly handle non-UTF8 symlink targets when restoring them.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3311
|
||||||
|
https://github.com/restic/restic/pull/3802
|
||||||
9
changelog/0.16.0_2023-07-31/issue-3328
Normal file
9
changelog/0.16.0_2023-07-31/issue-3328
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Enhancement: Reduce memory usage by up to 25%
|
||||||
|
|
||||||
|
The in-memory index has been optimized to be more garbage collection friendly.
|
||||||
|
Restic now defaults to `GOGC=50` to run the Go garbage collector more
|
||||||
|
frequently.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3328
|
||||||
|
https://github.com/restic/restic/pull/4352
|
||||||
|
https://github.com/restic/restic/pull/4353
|
||||||
11
changelog/0.16.0_2023-07-31/issue-3397
Normal file
11
changelog/0.16.0_2023-07-31/issue-3397
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
Enhancement: Improve accuracy of ETA displayed during backup
|
||||||
|
|
||||||
|
Restic's `backup` command displayed an ETA that did not adapt when the rate of
|
||||||
|
progress made during the backup changed during the course of the backup.
|
||||||
|
|
||||||
|
Restic now uses recent progress when computing the ETA. It is important to
|
||||||
|
realize that the estimate may still be wrong, because restic cannot predict
|
||||||
|
the future, but the hope is that the ETA will be more accurate in most cases.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3397
|
||||||
|
https://github.com/restic/restic/pull/3563
|
||||||
9
changelog/0.16.0_2023-07-31/issue-3624
Normal file
9
changelog/0.16.0_2023-07-31/issue-3624
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Enhancement: Keep oldest snapshot when there are not enough snapshots
|
||||||
|
|
||||||
|
The `forget` command now additionally preserves the oldest snapshot if fewer
|
||||||
|
snapshots than allowed by the `--keep-*` parameters would otherwise be kept.
|
||||||
|
This maximizes the amount of history kept within the specified limits.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3624
|
||||||
|
https://github.com/restic/restic/pull/4366
|
||||||
|
https://forum.restic.net/t/keeping-yearly-snapshots-policy-when-backup-began-during-the-year/4670/2
|
||||||
8
changelog/0.16.0_2023-07-31/issue-3698
Normal file
8
changelog/0.16.0_2023-07-31/issue-3698
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Enhancement: Add support for Managed / Workload Identity to `azure` backend
|
||||||
|
|
||||||
|
Restic now additionally supports authenticating to Azure using Workload
|
||||||
|
Identity or Managed Identity credentials, which are automatically injected in
|
||||||
|
several environments such as a managed Kubernetes cluster.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3698
|
||||||
|
https://github.com/restic/restic/pull/4029
|
||||||
22
changelog/0.16.0_2023-07-31/issue-3871
Normal file
22
changelog/0.16.0_2023-07-31/issue-3871
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
Enhancement: Support `<snapshot>:<subfolder>` syntax to select subfolders
|
||||||
|
|
||||||
|
Commands like `diff` or `restore` always worked with the full snapshot. This
|
||||||
|
did not allow comparing only a specific subfolder or only restoring that folder
|
||||||
|
(`restore --include subfolder` filters the restored files, but still creates the
|
||||||
|
directories included in `subfolder`).
|
||||||
|
|
||||||
|
The commands `diff`, `dump`, `ls` and `restore` now support the
|
||||||
|
`<snapshot>:<subfolder>` syntax, where `snapshot` is the ID of a snapshot (or
|
||||||
|
the string `latest`) and `subfolder` is a path within the snapshot. The
|
||||||
|
commands will then only work with the specified path of the snapshot. The
|
||||||
|
`subfolder` must be a path to a folder as returned by `ls`. Two examples:
|
||||||
|
|
||||||
|
`restic restore -t target latest:/some/path`
|
||||||
|
`restic diff 12345678:/some/path 90abcef:/some/path`
|
||||||
|
|
||||||
|
For debugging purposes, the `cat` command now supports `cat tree
|
||||||
|
<snapshot>:<subfolder>` to return the directory metadata for the given
|
||||||
|
subfolder.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3871
|
||||||
|
https://github.com/restic/restic/pull/4334
|
||||||
17
changelog/0.16.0_2023-07-31/issue-3941
Normal file
17
changelog/0.16.0_2023-07-31/issue-3941
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
Enhancement: Support `--group-by` for backup parent selection
|
||||||
|
|
||||||
|
Previously, the `backup` command by default selected the parent snapshot based
|
||||||
|
on the hostname and the backup targets. When the backup path list changed, the
|
||||||
|
`backup` command was unable to determine a suitable parent snapshot and had to
|
||||||
|
read all files again.
|
||||||
|
|
||||||
|
The new `--group-by` option for the `backup` command allows filtering snapshots
|
||||||
|
for the parent selection by `host`, `paths` and `tags`. It defaults to
|
||||||
|
`host,paths` which selects the latest snapshot with hostname and paths matching
|
||||||
|
those of the backup run. This matches the behavior of prior restic versions.
|
||||||
|
|
||||||
|
The new `--group-by` option should be set to the same value as passed to
|
||||||
|
`forget --group-by`.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3941
|
||||||
|
https://github.com/restic/restic/pull/4081
|
||||||
9
changelog/0.16.0_2023-07-31/issue-4130
Normal file
9
changelog/0.16.0_2023-07-31/issue-4130
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Enhancement: Cancel current command if cache becomes unusable
|
||||||
|
|
||||||
|
If the cache directory was removed or ran out of space while restic was
|
||||||
|
running, this would previously cause further caching attempts to fail and
|
||||||
|
thereby drastically slow down the command execution. Now, the currently running
|
||||||
|
command is instead canceled.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/4130
|
||||||
|
https://github.com/restic/restic/pull/4166
|
||||||
12
changelog/0.16.0_2023-07-31/issue-4159
Normal file
12
changelog/0.16.0_2023-07-31/issue-4159
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
Enhancement: Add `--human-readable` option to `ls` and `find` commands
|
||||||
|
|
||||||
|
Previously, when using the `-l` option with the `ls` and `find` commands, the
|
||||||
|
displayed size was always in bytes, without an option for a more human readable
|
||||||
|
format such as MiB or GiB.
|
||||||
|
|
||||||
|
The new `--human-readable` option will convert longer size values into more
|
||||||
|
human friendly values with an appropriate suffix depending on the output size.
|
||||||
|
For example, a size of `14680064` will be shown as `14.000 MiB`.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/4159
|
||||||
|
https://github.com/restic/restic/pull/4351
|
||||||
8
changelog/0.16.0_2023-07-31/issue-4188
Normal file
8
changelog/0.16.0_2023-07-31/issue-4188
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Enhancement: Include restic version in snapshot metadata
|
||||||
|
|
||||||
|
The restic version used to backup a snapshot is now included in its metadata
|
||||||
|
and shown when inspecting a snapshot using `restic cat snapshot <snapshotID>`
|
||||||
|
or `restic snapshots --json`.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/4188
|
||||||
|
https://github.com/restic/restic/pull/4378
|
||||||
9
changelog/0.16.0_2023-07-31/issue-4199
Normal file
9
changelog/0.16.0_2023-07-31/issue-4199
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Bugfix: Avoid lock refresh issues on slow network connections
|
||||||
|
|
||||||
|
On network connections with a low upload speed, backups and other operations
|
||||||
|
could fail with the error message `Fatal: failed to refresh lock in time`.
|
||||||
|
|
||||||
|
This has now been fixed by reworking the lock refresh handling.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/4199
|
||||||
|
https://github.com/restic/restic/pull/4304
|
||||||
14
changelog/0.16.0_2023-07-31/issue-426
Normal file
14
changelog/0.16.0_2023-07-31/issue-426
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
Enhancement: Show progress bar during restore
|
||||||
|
|
||||||
|
The `restore` command now shows a progress report while restoring files.
|
||||||
|
|
||||||
|
Example: `[0:42] 5.76% 23 files 12.98 MiB, total 3456 files 23.54 GiB`
|
||||||
|
|
||||||
|
JSON output is now also supported.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/426
|
||||||
|
https://github.com/restic/restic/issues/3413
|
||||||
|
https://github.com/restic/restic/issues/3627
|
||||||
|
https://github.com/restic/restic/pull/3991
|
||||||
|
https://github.com/restic/restic/pull/4314
|
||||||
|
https://forum.restic.net/t/progress-bar-for-restore/5210
|
||||||
11
changelog/0.16.0_2023-07-31/issue-4274
Normal file
11
changelog/0.16.0_2023-07-31/issue-4274
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
Bugfix: Improve lock refresh handling after standby
|
||||||
|
|
||||||
|
If the restic process was stopped or the host running restic entered standby
|
||||||
|
during a long running operation such as a backup, this previously resulted in
|
||||||
|
the operation failing with `Fatal: failed to refresh lock in time`.
|
||||||
|
|
||||||
|
This has now been fixed such that restic first checks whether it is safe to
|
||||||
|
continue the current operation and only throws an error if not.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/4274
|
||||||
|
https://github.com/restic/restic/pull/4374
|
||||||
8
changelog/0.16.0_2023-07-31/issue-4375
Normal file
8
changelog/0.16.0_2023-07-31/issue-4375
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Enhancement: Add support for extended attributes on symlinks
|
||||||
|
|
||||||
|
Restic now supports extended attributes on symlinks when backing up,
|
||||||
|
restoring, or FUSE-mounting snapshots. This includes, for example, the
|
||||||
|
`security.selinux` xattr on Linux distributions that use SELinux.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/4375
|
||||||
|
https://github.com/restic/restic/pull/4379
|
||||||
8
changelog/0.16.0_2023-07-31/issue-719
Normal file
8
changelog/0.16.0_2023-07-31/issue-719
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Enhancement: Add `--retry-lock` option
|
||||||
|
|
||||||
|
This option allows specifying a duration for which restic will wait if the
|
||||||
|
repository is already locked.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/719
|
||||||
|
https://github.com/restic/restic/pull/2214
|
||||||
|
https://github.com/restic/restic/pull/4107
|
||||||
8
changelog/0.16.0_2023-07-31/pull-3261
Normal file
8
changelog/0.16.0_2023-07-31/pull-3261
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Enhancement: Reduce file fragmentation for local backend
|
||||||
|
|
||||||
|
Before this change, local backend files could become fragmented.
|
||||||
|
Now restic will try to preallocate space for pack files to avoid
|
||||||
|
their fragmentation.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/2679
|
||||||
|
https://github.com/restic/restic/pull/3261
|
||||||
7
changelog/0.16.0_2023-07-31/pull-4176
Normal file
7
changelog/0.16.0_2023-07-31/pull-4176
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
Change: Fix JSON message type of `scan_finished` for the `backup` command
|
||||||
|
|
||||||
|
Restic incorrectly set the `message_type` of the `scan_finished` message to
|
||||||
|
`status` instead of `verbose_status`. This has now been corrected so that
|
||||||
|
the messages report the correct type.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/4176
|
||||||
7
changelog/0.16.0_2023-07-31/pull-4201
Normal file
7
changelog/0.16.0_2023-07-31/pull-4201
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
Change: Require Go 1.20 for Solaris builds
|
||||||
|
|
||||||
|
Building restic on Solaris now requires Go 1.20, as the library used to access
|
||||||
|
Azure uses the mmap syscall, which is only available on Solaris starting from
|
||||||
|
Go 1.20. All other platforms however continue to build with Go 1.18.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/4201
|
||||||
6
changelog/0.16.0_2023-07-31/pull-4220
Normal file
6
changelog/0.16.0_2023-07-31/pull-4220
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
Enhancement: Add `jq` binary to Docker image
|
||||||
|
|
||||||
|
The Docker image now contains `jq`, which can be useful to process JSON data
|
||||||
|
output by restic.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/4220
|
||||||
7
changelog/0.16.0_2023-07-31/pull-4226
Normal file
7
changelog/0.16.0_2023-07-31/pull-4226
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
Enhancement: Allow specifying region of new buckets in the `gs` backend
|
||||||
|
|
||||||
|
Previously, buckets used by the Google Cloud Storage backend would always get
|
||||||
|
created in the "us" region. It is now possible to specify the region where a
|
||||||
|
bucket should be created by using the `-o gs.region=us` option.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/4226
|
||||||
8
changelog/0.16.0_2023-07-31/pull-4318
Normal file
8
changelog/0.16.0_2023-07-31/pull-4318
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Bugfix: Correctly clean up status bar output of the `backup` command
|
||||||
|
|
||||||
|
Due to a regression in restic 0.15.2, the status bar of the `backup` command
|
||||||
|
could leave some output behind. This happened if filenames were printed that
|
||||||
|
are wider than the current terminal width. This has now been fixed.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/4319
|
||||||
|
https://github.com/restic/restic/pull/4318
|
||||||
3
changelog/0.16.0_2023-07-31/pull-4333
Normal file
3
changelog/0.16.0_2023-07-31/pull-4333
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
Bugfix: `generate` and `init` no longer silently ignore unexpected arguments
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/4333
|
||||||
8
changelog/0.16.0_2023-07-31/pull-4400
Normal file
8
changelog/0.16.0_2023-07-31/pull-4400
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Bugfix: Ignore missing folders in `rest` backend
|
||||||
|
|
||||||
|
If a repository accessed via the REST backend was missing folders, then restic
|
||||||
|
would fail with an error while trying to list the data in the repository. This
|
||||||
|
has been now fixed.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/4400
|
||||||
|
https://github.com/restic/rest-server/issues/235
|
||||||
9
changelog/0.16.1_2023-10-24/issue-4128
Normal file
9
changelog/0.16.1_2023-10-24/issue-4128
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Enhancement: Automatically set `GOMAXPROCS` in resource-constrained containers
|
||||||
|
|
||||||
|
When running restic in a Linux container with CPU-usage limits, restic now
|
||||||
|
automatically adjusts `GOMAXPROCS`. This helps to reduce the memory consumption
|
||||||
|
on hosts with many CPU cores.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/4128
|
||||||
|
https://github.com/restic/restic/pull/4485
|
||||||
|
https://github.com/restic/restic/pull/4531
|
||||||
8
changelog/0.16.1_2023-10-24/issue-4513
Normal file
8
changelog/0.16.1_2023-10-24/issue-4513
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Bugfix: Make `key list` command honor `--no-lock`
|
||||||
|
|
||||||
|
The `key list` command now supports the `--no-lock` options. This allows
|
||||||
|
determining which keys a repo can be accessed by without the need for having
|
||||||
|
write access (e.g., read-only sftp access, filesystem snapshot).
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/4513
|
||||||
|
https://github.com/restic/restic/pull/4514
|
||||||
8
changelog/0.16.1_2023-10-24/issue-4516
Normal file
8
changelog/0.16.1_2023-10-24/issue-4516
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Bugfix: Do not try to load password on command line autocomplete
|
||||||
|
|
||||||
|
The command line autocompletion previously tried to load the repository
|
||||||
|
password. This could cause the autocompletion not to work. Now, this step gets
|
||||||
|
skipped.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/4516
|
||||||
|
https://github.com/restic/restic/pull/4526
|
||||||
22
changelog/0.16.1_2023-10-24/issue-4523
Normal file
22
changelog/0.16.1_2023-10-24/issue-4523
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
Bugfix: Update zstd library to fix possible data corruption at max. compression
|
||||||
|
|
||||||
|
In restic 0.16.0, backups where the compression level was set to `max` (using
|
||||||
|
`--compression max`) could in rare and very specific circumstances result in
|
||||||
|
data corruption due to a bug in the library used for compressing data.
|
||||||
|
|
||||||
|
Restic now uses the latest version of the library used to compress data, which
|
||||||
|
includes a fix for this issue. Please note that the `auto` compression level
|
||||||
|
(which restic uses by default) was never affected, and even if you used `max`
|
||||||
|
compression, chances of being affected by this issue were very small.
|
||||||
|
|
||||||
|
To check a repository for any corruption, run `restic check --read-data`. This
|
||||||
|
will download and verify the whole repository and can be used at any time to
|
||||||
|
completely verify the integrity of a repository. If the `check` command detects
|
||||||
|
anomalies, follow the suggested steps.
|
||||||
|
|
||||||
|
To simplify any needed repository repair and minimize data loss, there is also
|
||||||
|
a new and experimental `repair packs` command that salvages all valid data from
|
||||||
|
the affected pack files (see `restic help repair packs` for more information).
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/4523
|
||||||
|
https://github.com/restic/restic/pull/4530
|
||||||
7
changelog/0.16.1_2023-10-24/pull-299
Normal file
7
changelog/0.16.1_2023-10-24/pull-299
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
Enhancement: Show progress bar while loading the index
|
||||||
|
|
||||||
|
Restic did not provide any feedback while loading index files. Now, there is a
|
||||||
|
progress bar that shows the index loading progress.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/229
|
||||||
|
https://github.com/restic/restic/pull/4419
|
||||||
11
changelog/0.16.1_2023-10-24/pull-4480
Normal file
11
changelog/0.16.1_2023-10-24/pull-4480
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
Enhancement: Allow setting REST password and username via environment variables
|
||||||
|
|
||||||
|
Previously, it was only possible to specify the REST-server username and
|
||||||
|
password in the repository URL, or by using the `--repository-file` option.
|
||||||
|
This meant it was not possible to use authentication in contexts where the
|
||||||
|
repository URL is stored in publicly accessible way.
|
||||||
|
|
||||||
|
Restic now allows setting the username and password using the
|
||||||
|
`RESTIC_REST_USERNAME` and `RESTIC_REST_PASSWORD` variables.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/4480
|
||||||
7
changelog/0.16.1_2023-10-24/pull-4511
Normal file
7
changelog/0.16.1_2023-10-24/pull-4511
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
Enhancement: Include inode numbers in JSON output for `find` and `ls` commands
|
||||||
|
|
||||||
|
Restic used to omit the inode numbers in the JSON messages emitted for nodes by
|
||||||
|
the `ls` command as well as for matches by the `find` command. It now includes
|
||||||
|
those values whenever they are available.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/4511
|
||||||
12
changelog/0.16.1_2023-10-24/pull-4519
Normal file
12
changelog/0.16.1_2023-10-24/pull-4519
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
Enhancement: Add config option to set SFTP command arguments
|
||||||
|
|
||||||
|
When using the `sftp` backend, scenarios where a custom identity file was
|
||||||
|
needed for the SSH connection, required the full command to be specified:
|
||||||
|
`-o sftp.command='ssh user@host:port -i /ssh/my_private_key -s sftp'`
|
||||||
|
|
||||||
|
Now, the `-o sftp.args=...` option can be passed to restic to specify
|
||||||
|
custom arguments for the SSH command executed by the SFTP backend.
|
||||||
|
This simplifies the above example to `-o sftp.args='-i /ssh/my_private_key'`.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/pull/4519
|
||||||
|
https://github.com/restic/restic/issues/4241
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user