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
c0337a2675
Add exclude filter to restorer and 'restore' command
2015-07-20 19:21:01 +02:00
Alexander Neumann
cef57e7abd
restorer: Initialize SelectForRestore with default
2015-07-09 20:12:31 +02:00
Alexander Neumann
7255e4feb3
restorer: Move filter to restoreTo()
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
Alexander Neumann
1fb8e332ce
Restore timestamps for directories earlier
2015-05-14 15:58:26 +02:00
Florian Weingarten
bace4607bf
Fix ModTime for directories
2015-05-13 23:11:31 -04:00
Alexander Neumann
95536e8a21
Rename 'Repo' -> 'Repository'
2015-05-09 23:59:58 +02:00
Alexander Neumann
232c472836
Move package 'repo' to package 'repository'
2015-05-09 23:52:03 +02:00
Alexander Neumann
ae21938f3e
Rename 'Repository' -> Repo
2015-05-09 17:41:28 +02:00
Alexander Neumann
d9b5832034
Rename variables
2015-05-09 13:47:21 +02:00
Alexander Neumann
87ebf12945
Rename 'Server' to 'Repository'
2015-05-09 13:25:52 +02:00
Alexander Neumann
8be9e95d20
Rename package 'server' to 'repo'
2015-05-09 13:24:15 +02:00
Alexander Neumann
b335de6b81
Add comments to exported methods
2015-05-02 15:23:28 +02:00
Alexander Neumann
97619e743c
replace github.com/juju/arrar by /errors
2015-05-02 01:29:54 +02:00
Florian Weingarten
0d9360a815
more cleanup
2015-04-29 22:33:34 -04:00
Florian Weingarten
c9f1f08019
Small refactorings and ceosmetic changes
2015-04-29 20:59:06 -04:00
Alexander Neumann
60a0fe8349
Major restructure, bundle blobs
...
This commit also breaks the repository format.
2015-04-29 23:27:32 +02:00
Florian Weingarten
4bb724fac2
Refactor node.go
2015-04-29 03:07:22 +00:00
Florian Weingarten
8ba47df8d1
golint
2015-04-28 10:23:13 -04:00
Alexander Neumann
d19b23d4f1
Move Server and Key to new sub-package
2015-04-26 14:46:15 +02:00
Alexander Neumann
f157f775da
Add checks for Server.Load(), use Blob for load
2015-03-28 15:07:08 +01:00
Alexander Neumann
f167366be5
Add walk for trees, restructure
2015-03-02 19:58:06 +01:00
Alexander Neumann
4d1e7b9f24
Change parameters of LoadTree()
2015-02-17 22:37:34 +01:00
Alexander Neumann
79e065596f
Make CreateAtNodeAt() independend from Tree
2015-02-03 21:04:51 +01:00
Alexander Neumann
203a911de9
Refactor repository structure
...
Merge Map data type into Tree.
2015-01-14 16:34:30 +01:00
Alexander Neumann
fe231af7fc
Remove error from return value of NewContentHandler
2015-01-04 20:07:30 +01:00
Sebastian Schmidt
bd43e27deb
Create parent directories for restore items
...
When restoring an item fails with ENOENT, create parent directories and
try again. This is needed for restoring partial trees (as in: the Filter
function didn't return true for the paths leading up to this restore
item).
2015-01-01 16:40:36 +01:00
Sebastian Schmidt
fb874ea7cc
Allow nil 'Filter's for restorer
...
Allow Filters to be nil and avoid joining the path again if no filter is
used at all.
2015-01-01 16:40:36 +01:00
Sebastian Schmidt
10b99e53e4
Pass "source" path to restorer filter function
...
The source path is probably more useful here as the user, when
restoring, probably wants to filter for /usr/local/foo instead of
/tmp/restore-whatever/{usr/local/,}foo.
2015-01-01 16:40:36 +01:00
Sebastian Schmidt
ccada7d89a
Don't skip subtree on false filter condition when restoring
...
We still need to descend into subtrees and check if their filter
matches.
2015-01-01 16:40:36 +01:00
Alexander Neumann
ef41a77aff
Remove explicit key handling
2014-12-21 18:10:19 +01:00
Alexander Neumann
cc147c002e
Introduce type Server
2014-12-21 17:37:29 +01:00
Alexander Neumann
202984a93f
Rename snapshot.Content -> snapshot.Tree
2014-12-07 14:14:50 +01:00
Alexander Neumann
e2fea0d088
Rename khepri -> restic
2014-12-05 21:45:49 +01:00
Alexander Neumann
d1e4431514
Refactor StorageMap to BlobList
2014-11-22 21:05:18 +01:00
Alexander Neumann
ff3d0840d8
Fix integration tests
...
Todo for later:
* fix Futimes() syscall (will be done in #24 )
* return error in dirdiff when ModTime doesn't match
2014-11-16 12:05:54 +01:00
Alexander Neumann
30ab03b7b7
Add decrypt, refactor
2014-10-03 21:44:55 +02:00