Alexander Neumann
1fc0d78913
Refactor Index.Store() to take a PackedBlob
2015-11-02 19:07:03 +01:00
Alexander Neumann
50c2f2e87f
cmd_cat: allow dumping raw tree blobs
2015-11-02 17:36:04 +01:00
Alexander Neumann
fccde030d5
Refactor Index.Lookup() to return struct PackedBlob
2015-10-31 14:47:42 +01:00
Alexander Neumann
b5976474dd
backup: add debug output for excluded files/dirs
2015-10-27 22:34:30 +01:00
Alexander Neumann
00e05ae3c9
bugfix: close pack files after reading the header
2015-10-27 20:39:52 +01:00
Alexander Neumann
74cd134b54
rebuild index: remember already stored blobs
2015-10-25 22:34:22 +01:00
Alexander Neumann
734ae7fcb8
Add test for corner case
...
It was observed that a restic repository still contained overlapping
indexes after `rebuild-index` has been called. This is caused by
instantly forgetting that blobs have already been saved once a full
index has been written during index rebuilding.
This commit adds a (failing) test that shows the behaviour.
2015-10-25 21:51:57 +01:00
Alexander Neumann
7b8e42a763
Silence rebuild-index tests
2015-10-25 21:51:46 +01:00
Alexander Neumann
efbce9f0fa
rebuild-index: handle not yet indexed packs
2015-10-25 18:07:51 +01:00
Alexander Neumann
88849c06a6
rebuild-index: Refactor a bit
2015-10-25 17:53:02 +01:00
Alexander Neumann
6aed9f268b
Add command rebuild-index
2015-10-25 17:24:52 +01:00
Alexander Neumann
96ecc26507
Let the checker return a list of hints along with errors
2015-10-25 16:26:50 +01:00
Alexander Neumann
650eab6a0e
Fix typo in dump
usage
2015-10-25 13:19:35 +01:00
Alexander Neumann
7ab9915859
Fix 'dump' command
2015-10-12 22:42:31 +02:00
Alexander Neumann
86fcd170f6
Add and use MasterIndex
2015-10-12 22:34:12 +02:00
Alexander Neumann
de2c20be84
Dump individual indexes
2015-10-12 20:53:07 +02:00
Alexander Neumann
db85ab8aa0
Use the correct channel for sending errors
2015-10-11 19:13:45 +02:00
Chapuis Bertil
c765688779
find command integration tests
2015-08-28 19:31:05 +02:00
Chapuis Bertil
d4686ebcc5
Load the index and search subtree
2015-08-27 23:21:44 +02:00
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
Alexander Neumann
dac89bf544
Allow more than one cleanup handler
2015-07-19 17:50:55 +02:00
Alexander Neumann
159b9e80c4
cmd/restic: implement lock refresh
2015-07-12 22:10:01 +02:00
Alexander Neumann
d36f07c6eb
checker: add option to remove orphaned packs
2015-07-12 17:14:10 +02:00
Alexander Neumann
af02c323cd
checker: use channel of error instead of slice
2015-07-12 01:46:10 +02:00
Alexander Neumann
04f172b38d
checker: Add checker and tests
2015-07-11 16:27:41 +02:00
Alexander Neumann
54c4c29a89
Add checker and command 'check' to replace 'fsck'
2015-07-11 16:27:38 +02:00
Alexander Neumann
389ec9b101
Add tests for restore filter
2015-07-09 20:12:31 +02:00
Alexander Neumann
3e0a97fb13
Fix restore filter
...
Internally rename restorer.Filter -> restorer.SelectForRestore to make
semantic clear.
In addition, swap parameters to filepath.Match() so that the pattern can
really be matched.
Limitation: The filter only works on the filename, not on any path
component, e.g. '*.go' selects all go files, 'subdir/foo*' doesn't
select anything.
Fixes #202 .
2015-07-09 20:12:31 +02:00
Florian Weingarten
c2d5a9209e
fix darwin integration tests
2015-07-09 11:13:40 -04:00
Alexander Neumann
57eb1a4eea
cmd_backup: filter non-existing target files/dirs
2015-07-06 23:02:16 +02:00
Alexander Neumann
c8bb688e26
Command snapshots
: do not list first dir twice
2015-07-06 22:26:31 +02:00
Alexander Neumann
03983f0907
repository: Rename Load() -> LoadAndDecrypt()
2015-07-05 11:07:10 +02:00
Alexander Neumann
281eea9c05
sftp: Use own process group for ssh subprocess
2015-07-05 11:07:10 +02:00
Alexander Neumann
e657287eac
cmd/restic: Add command unlock
, improve error message
2015-06-28 13:52:23 +02:00
Alexander Neumann
47212dde8c
cmd/restic: Do not require exclusive lock for listing keys
2015-06-28 13:52:22 +02:00
Alexander Neumann
13e9a35f96
cmd/restic: Add lock handling, interrupt cleanup
2015-06-28 13:52:22 +02:00
Alexander Neumann
65a0def949
cmd/restic: Add locks to commands
2015-06-28 13:52:22 +02:00
Alexander Neumann
7d2699b429
cmd/restic: Rename variable, no functional changes
2015-06-28 13:52:22 +02:00
Alexander Neumann
d51fd436b5
Add locking functions
2015-06-28 13:52:22 +02:00
Florian Weingarten
f8c30556d3
Ask for password after create repo succeeded
2015-06-26 13:58:43 -04:00
Alexander Neumann
9e9177ab73
Add build.go
2015-06-24 20:29:58 +02:00
Alexander Neumann
d5020ac109
Fix debug functions
2015-06-24 20:00:01 +02:00
Alexander Neumann
6c2d6bfd11
Merge pull request #184 from howeyc/backend-s3
...
Add Amazon S3 backend.
2015-06-23 20:14:47 +02:00
Alexander Neumann
0005191d71
Remove dirdiff
and gentestdata
2015-06-21 17:40:22 +02:00
Alexander Neumann
5ae04b6834
Add last integration tests, remove testsuite
2015-06-21 17:40:22 +02:00
Alexander Neumann
43d4558a90
Add test for backing up non-existing directories
2015-06-21 17:40:22 +02:00
Alexander Neumann
675f341b6d
Output warnings/errors to configurable writer
2015-06-21 17:40:22 +02:00
Alexander Neumann
cfaf8ab8a6
Add integration test for key handling
2015-06-21 17:40:22 +02:00
Alexander Neumann
a99a460b32
Fix integration tests
2015-06-21 17:40:22 +02:00
Alexander Neumann
a43733d552
Introduce Verbosef
2015-06-21 17:40:22 +02:00
Alexander Neumann
4388474cdc
Restructure cmd/restic
, no functional changes
2015-06-21 17:40:22 +02:00