Commit Graph

195 Commits

Author SHA1 Message Date
Alexander Neumann fcb769fa3b Merge pull request #262 from restic/fix-tests
Fix tests
2015-08-18 22:45:50 +02:00
Alexander Neumann 1a47ea4ab8 test helpers: add RemoveAll and ResetReadOnly
This is mainly needed in Windows, where files and dirs cannot be
removed unless they are writeable.
2015-08-18 21:40:40 +02:00
klauspost a3570af500 Create separate disEntry.equals for Windows.
Windows does not have UID/GID the same way as unix,
so we don't attempt to compare them.
2015-08-17 11:10:12 +02:00
klauspost d5dab39a4a Disable FUSE test on Windows. 2015-08-17 11:02:04 +02:00
Klaus Post 4dc746dac2 Change repository type detection to first check if path is a directory that exists.
The method of determining if a repository exists doesn't work on Windows, since
the "url.Scheme" will contain the drive letter - "c" in "c:\backup",
so as a first step we check if the URL can be opened as a file,
and if so, we assume it is a 'local' type repository.
2015-08-14 15:39:16 +02:00
Klaus Post fb3778abb6 Disable mount command on Windows.
FUSE does not support Windows, so we disable it on Windows.
2015-08-14 15:33:11 +02:00
Alexander Neumann dde0fd8421 Add option to use root as owner of files/dirs 2015-07-26 20:56:27 +02:00
Alexander Neumann 05e2afba0b Merge pull request #249 from restic/reduce-fuse-memory-usage
Reduce memory usage for fuse mount
2015-07-26 19:20:13 +02:00
Alexander Neumann b85927576b Address code review comments 2015-07-26 18:01:20 +02:00
Alexander Neumann d1629e1e4e fuse: move to top level 2015-07-26 17:20:26 +02:00
Alexander Neumann bd746a0425 fuse: refactor and add tests for fuse.file 2015-07-26 16:43:42 +02:00
Alexander Neumann 9753c37e31 Remove dead code
This removes dead code (functions that aren't called) detected with
`deadcode`.
2015-07-26 14:56:34 +02:00
Alexander Neumann 55ddd5317d Reduce memory usage for fuse mount
This changes `repository.LoadBlob()` so that a destination buffer must
be provided, which enables the fuse code to use a buffer from a
`sync.Pool`. In addition, release the buffers when the file is closed.
At the moment, the max memory usage is defined by the max file size that
is read in one go (e.g. with `cat`). It could be further optimized by
implementing a LRU caching scheme.
2015-07-26 14:25:59 +02:00
Alexander Neumann 054256468b Fix message display for parent snapshot id 2015-07-25 18:10:23 +02:00
Alexander Neumann 5cdcc99eba Use array instead of hash for backend.ID
Since backend.ID is always a slice of constant length, use an array
instead of a slice. Mostly, arrays behave as slices, except that an
array cannot be nil, so use `*backend.ID` insteaf of `backend.ID` in
places where the absence of an ID is possible (e.g. for the Subtree of a
Node, which may not present when the node is a file node).

This change allows to directly use backend.ID as the the key for a map,
so that arbitrary data structures (e.g. a Set implemented as a
map[backend.ID]struct{}) can easily be formed.
2015-07-25 18:01:57 +02:00
Alexander Neumann deaca157fe restore: ignore errors
Also add a test for restoring a file that is owned by root. Closes #244.
2015-07-25 12:59:59 +02:00
Alexander Neumann cc34401152 Record exclude patterns in snapshot
This adds the exclude patterns used to create a backup in the snapshot,
so we can later compute statistics (like git does) on the data
structure, e.g. added/removed files etc. For that, we need the exclude
pattern.
2015-07-22 22:43:32 +02:00
Alexander Neumann 9911d46996 fuse: rename child/children -> node/items 2015-07-21 21:34:59 +02:00
Alexander Neumann 3f4b5b8d48 fuse/mount: display symlinks properly 2015-07-21 21:25:05 +02:00
Alexander Neumann 1ac72b8813 Fix style issue 2015-07-21 21:24:06 +02:00
Alexander Neumann 99dae57b4f fuse: use node.Type instead of node.Mode 2015-07-21 21:23:40 +02:00
Alexander Neumann aeb5a694d3 Merge pull request #238 from restic/fix-checks-on-bsd
Refactor skipping symlink timestamp checks on *bsd and darwin
2015-07-21 19:47:33 +02:00
Alexander Neumann 258b6a77ee Refactor skipping symlink ModTime checks, add OpenBSD 2015-07-20 21:29:21 +02:00
Alexander Neumann bd3ce5d4a3 Fix tests on freebsd 2015-07-20 21:08:29 +02:00
Alexander Neumann 1da89253cf Add include filter for restore
Include and exclude filter are mutually exclusive.
2015-07-20 19:21:01 +02:00
Alexander Neumann c0337a2675 Add exclude filter to restorer and 'restore' command 2015-07-20 19:21:01 +02:00
Alexander Neumann 7fd52f9f57 Add exclude filter to archiver and 'backup' command 2015-07-20 19:21:01 +02:00
Matthieu Rakotojaona 3767eb2675 Unmount and remove directory for mount in tests 2015-07-19 23:04:18 +02:00
Matthieu Rakotojaona e44716381c Unmount when closing application from cli 2015-07-19 23:04:18 +02:00
Matthieu Rakotojaona eadfcd3f9e Add waitForMount for OSX 2015-07-19 23:04:18 +02:00
Matthieu Rakotojaona fe6f1c01f3 Make inodeFromBackendId more explicit 2015-07-19 23:04:18 +02:00
Matthieu Rakotojaona a4d122e5ae Cleanup mount after test 2015-07-19 23:04:18 +02:00
Matthieu Rakotojaona d7888d4dd5 Fix checks in fuse tests 2015-07-19 23:04:18 +02:00
Matthieu Rakotojaona ca6b7ec533 Add Index.LookupSize 2015-07-19 23:04:18 +02:00
Matthieu Rakotojaona b1426826cc Extract fuse structs 2015-07-19 23:03:33 +02:00
Matthieu Rakotojaona 0606b9884e Make file.Read more intelligible 2015-07-19 23:03:33 +02:00
Matthieu Rakotojaona 3731a94367 Use functions to create names 2015-07-19 23:03:32 +02:00
Matthieu Rakotojaona a016f82051 Fix coding style 2015-07-19 23:03:32 +02:00
Matthieu Rakotojaona e654a9659c Protect the snapshots cache with a RWMutex 2015-07-19 23:03:32 +02:00
Matthieu Rakotojaona 0e7c1668d5 Make mountpoint readable by owner only 2015-07-19 23:03:32 +02:00
Matthieu Rakotojaona 9ff98d34ef Add build and test instructions
* Don't build on openbsd
* Don't test fuse on travis
2015-07-19 23:03:32 +02:00
Matthieu Rakotojaona 1f79a19293 Comment the go trick about static verification of a struct implementing an interface 2015-07-19 23:03:32 +02:00
Matthieu Rakotojaona a8cd74ba7e Cache known snapshots instead of re-traversing the repository every time 2015-07-19 23:03:32 +02:00
Matthieu Rakotojaona c9b3eebc09 Check that mountpoints are created 2015-07-19 23:03:32 +02:00
Matthieu Rakotojaona 25b090a074 Add integration tests for mount command 2015-07-19 23:03:32 +02:00
Matthieu Rakotojaona 414ade5b3f Signal readiness of mount to potential callers 2015-07-19 23:03:32 +02:00
Matthieu Rakotojaona a6ce7d9845 Use more restic-y idioms 2015-07-19 23:03:32 +02:00
Matthieu Rakotojaona 3a82612244 Update bazil.org/fuse version 2015-07-19 23:03:32 +02:00
Matthieu Rakotojaona 32a321e51e Add simple mount command 2015-07-19 23:03:32 +02:00
Alexander Neumann 76817da922 Run cleanup handlers in main function 2015-07-19 17:57:18 +02:00