Michael Eischer
bcdfc2a8ea
CI: allow dependabot update of oauth2
...
Our minimum go version is new enough to allow updating the library.
2022-11-27 13:18:44 +01:00
Michael Eischer
686b0b2a3e
update the minimum required go version to 1.18
2022-11-27 13:18:43 +01:00
Michael Eischer
69a2e81bd3
Merge pull request #4039 from restic/dependabot/go_modules/github.com/google/go-cmp-0.5.9
...
build(deps): bump github.com/google/go-cmp from 0.5.8 to 0.5.9
2022-11-26 17:39:27 +01:00
dependabot[bot]
278e93f738
build(deps): bump github.com/google/go-cmp from 0.5.8 to 0.5.9
...
Bumps [github.com/google/go-cmp](https://github.com/google/go-cmp ) from 0.5.8 to 0.5.9.
- [Release notes](https://github.com/google/go-cmp/releases )
- [Commits](https://github.com/google/go-cmp/compare/v0.5.8...v0.5.9 )
---
updated-dependencies:
- dependency-name: github.com/google/go-cmp
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-11-26 11:35:05 +00:00
Michael Eischer
747d2ecd7b
Merge pull request #4042 from restic/skip-cloud-test-for-dependabot
...
CI: skip cloud tests for dependabot pull requests
2022-11-26 12:34:16 +01:00
Michael Eischer
98c6ca9d8f
CI: skip cloud tests for dependabot pull requests
2022-11-26 12:23:55 +01:00
Michael Eischer
9113b2620f
Merge pull request #4024 from MichaelEischer/macos-fuse
...
mount: switch to anacrolix fork of bazil/fuse
2022-11-26 12:15:14 +01:00
Michael Eischer
f115d64634
Merge pull request #4022 from MichaelEischer/race-checker
...
CI: Run the golang race checker
2022-11-26 12:13:50 +01:00
Michael Eischer
923c06cea0
Merge pull request #4025 from MichaelEischer/update-minio
...
Update minio library to add `credential_process` support
2022-11-25 23:21:57 +01:00
Michael Eischer
f4d3ed77c4
update minio library
2022-11-25 22:36:21 +01:00
greatroar
189e0fe5a9
fuse: Better inode generation
...
Hard links to the same file now get the same inode within the FUSE
mount. Also, inode generation is faster and, more importantly, no longer
allocates.
Benchmarked on Linux/amd64. Old means the benchmark with
sink = fs.GenerateDynamicInode(1, sub.node.Name)
instead of calling inodeFromNode. Results:
name old time/op new time/op delta
Inode/no_hard_links-8 137ns ± 4% 34ns ± 1% -75.20% (p=0.000 n=10+10)
Inode/hard_link-8 33.6ns ± 1% 9.5ns ± 0% -71.82% (p=0.000 n=9+8)
name old alloc/op new alloc/op delta
Inode/no_hard_links-8 48.0B ± 0% 0.0B -100.00% (p=0.000 n=10+10)
Inode/hard_link-8 0.00B 0.00B ~ (all equal)
name old allocs/op new allocs/op delta
Inode/no_hard_links-8 1.00 ± 0% 0.00 -100.00% (p=0.000 n=10+10)
Inode/hard_link-8 0.00 0.00 ~ (all equal)
2022-11-16 08:35:01 +01:00
Michael Eischer
32ffcd86a2
Merge pull request #3993 from MichaelEischer/backup-json-full-snapshot-id
...
backup: print full snapshot id in JSON summary
2022-11-12 20:42:35 +01:00
Michael Eischer
f032a9d0ad
prune: report how much data must be repacked to compressed the repo
...
prune now reports the remaining size of pack files containing
uncompressed blobs. The displayed value is suitable for use with `--max-repack-size`.
2022-11-12 20:20:23 +01:00
Michael Eischer
66818a8f98
Merge pull request #3980 from MichaelEischer/prune-compression-stats
...
prune: Correctly count used/duplicate blobs for partially compressed repos
2022-11-12 20:06:56 +01:00
Michael Eischer
4b5234924b
Merge pull request #2875 from fgma/issue2699
...
issue2699: restore symlinks on windows when run as admin user
2022-11-12 20:06:45 +01:00
Michael Eischer
726a1969cd
Merge pull request #2731 from dionorgua/rewrite-snapshot
...
Implement 'rewrite' command to exclude files from existing snapshots
2022-11-12 20:06:35 +01:00
Michael Eischer
bb0fa76c06
Cleanup exclude pattern collection
2022-11-12 19:55:22 +01:00
Michael Eischer
537cfe2e4c
rewrite: Fix check that an exclude pattern was passed
...
The old check did not consider files containing case insensitive
excludes. The check is now implemented as a function of the
excludePatternOptions struct to improve cohesion.
2022-11-12 19:55:22 +01:00
Leo R. Lundgren
f175da2756
rewrite: Polish documentation
2022-11-12 19:55:22 +01:00
Leo R. Lundgren
f86ef4d3dd
rewrite: Polish code and add missing messages
2022-11-12 19:55:22 +01:00
Leo R. Lundgren
c15bedccc0
rewrite: Revert unrelated documentation change
2022-11-12 19:55:22 +01:00
Michael Eischer
f88acd4503
rewrite: Fail if a tree contains an unknown field
...
In principle, the JSON format of Tree objects is extensible without
requiring a format change. In order to not loose information just play
it safe and reject rewriting trees for which we could loose data.
2022-11-12 19:55:22 +01:00
Michael Eischer
11b8c3a158
rewrite: add documentation
2022-11-12 19:55:22 +01:00
Michael Eischer
ec0c91e233
rewrite: Add tests for further ways to use the command
2022-11-12 19:55:22 +01:00
Michael Eischer
0224e276ec
walker: Add tests for FilterTree
2022-11-12 19:55:22 +01:00
Michael Eischer
73f54cc5ea
rewrite: rename --inplace to --forget
2022-11-12 19:55:22 +01:00
Michael Eischer
a47d9a1c40
rewrite: use unified snapshot filter options
2022-11-12 19:55:22 +01:00
Michael Eischer
b044649118
rewrite: add minimal test
2022-11-12 19:55:22 +01:00
Michael Eischer
375a3db64d
rewrite: non-exclusive lock if snapshots are only added
2022-11-12 19:55:22 +01:00
Michael Eischer
327f418a9c
rewrite: cleanup err handling and output
2022-11-12 19:55:22 +01:00
Michael Eischer
ad14d6e4ac
rewrite: use SelectByName like in the backup command
2022-11-12 19:55:22 +01:00
Michael Eischer
7ebaf6e899
rewrite: start repository uploader goroutines
2022-11-12 19:55:22 +01:00
Michael Eischer
559acea0d8
unify exclude pattern options
2022-11-12 19:55:22 +01:00
Michael Eischer
4cace1ffe9
unify exclude patterns with backup command
2022-11-12 19:55:22 +01:00
Michael Eischer
2b69a1c53b
rewrite: filter all snapshots if none are specified
2022-11-12 19:55:22 +01:00
Michael Eischer
f6339b88af
rewrite: extract tree filtering
2022-11-12 19:55:22 +01:00
Michael Eischer
c0f7ba2388
rewrite: simplify dryrun
2022-11-12 19:55:22 +01:00
Michael Eischer
4d6ab83019
rewrite: use treejsonbuilder
2022-11-12 19:55:22 +01:00
Michael Eischer
82592b88b5
rewrite: address most review comments
2022-11-12 19:55:22 +01:00
Michael Eischer
b922774343
rewrite: fix compilation
2022-11-12 19:55:22 +01:00
Dmitry Nezhevenko
dc29709742
Implement 'rewrite' command to exclude files from existing snapshots
2022-11-12 19:55:22 +01:00
Michael Eischer
220eaee76b
mount: switch to anacrolix fork of bazil/fuse
...
The anacrolix fork contains the latest changes from bazil/fuse and
additionally provides support for recent versions of macFUSE.
2022-11-12 19:22:31 +01:00
Michael Eischer
6fa45d0d39
Merge pull request #4011 from greatroar/backup-stdin-password
...
cmd: Don't read password from stdin for backup --stdin
2022-11-12 19:18:56 +01:00
Michael Eischer
bbd180ae21
Merge pull request #4017 from Rajpratik71/Rajpratik71-patch-1
...
feat: dependabot workflow automation for updating dependency
2022-11-12 15:48:48 +01:00
Pratik Raj
bef1064b8e
chore: ignore upgrade for 'bazil/fuse' and 'golang.org/x/oauth2'
2022-11-12 19:39:16 +05:30
Michael Eischer
7b4fe7bad5
Merge pull request #4021 from greatroar/mac-fsync
...
backend/local: Ignore ENOTTY for fsync on Mac
2022-11-11 23:10:37 +01:00
greatroar
348e966daa
backend/local: Ignore ENOTTY for fsync on Mac
...
Fixes #4016 .
2022-11-11 22:51:51 +01:00
Michael Eischer
0e5fe4c6ab
CI: run golang race checker
2022-11-11 22:15:22 +01:00
Michael Eischer
13fbc96ed3
lock: Synchronize Refresh()
and Stale()
...
The lock test creates a lock and checks that it is not stale. However,
it is possible that the lock is refreshed concurrently, which updates
the lock timestamp. Checking the timestamp in `Stale()` without
synchronization results in a data race. Thus add a lock to prevent
concurrent accesses.
2022-11-11 21:52:53 +01:00
Michael Eischer
e1ba7ab684
lock: Don't copy the lock when checking for process existence
...
The lock test creates a lock and checks that it is not stale. This also
tests whether the corresponding process still exists. However, it is
possible that the lock is refreshed concurrently, which updates the lock
timestamp. Calling `processExists()` with a value receiver, however,
creates an unsynchronized copy of this field. Thus call the method using
a pointer receiver.
2022-11-11 21:45:55 +01:00