Commit graph

46 commits

Author SHA1 Message Date
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
5108d91bc7 checker: check trees and blobs in parallel 2015-07-12 16:50:12 +02: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
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
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
5e69788eac Refactor backends 2015-03-28 14:36:50 +01:00
Alexander Neumann
b3cdd3ead9 Remove unused code 2015-03-08 14:22:35 +01:00
Alexander Neumann
4d1e7b9f24 Change parameters of LoadTree() 2015-02-17 22:37:34 +01:00
Alexander Neumann
f8f8107d55 wip 2015-02-15 15:17:24 +01:00
Alexander Neumann
2b7af4a1c1 tree: Add concurrent traversing functions 2015-02-04 22:36:49 +01:00
Alexander Neumann
460ebebeef Split out Node and Blob from tree.go 2015-02-03 21:07:55 +01:00
Alexander Neumann
79e065596f Make CreateAtNodeAt() independend from Tree 2015-02-03 21:04:51 +01:00
Moritz Holtz
1cf3564dc1 This should fix #82
Sockets where just not created, but CreateNodeAt still tried
to run chmod on them.
Now, CreateNodeAt directly returns when finding a socket.
2015-02-02 14:50:31 +01:00
Alexander Neumann
25a214809b Refactor debug into debug module 2015-01-17 16:32:13 +01:00
Alexander Neumann
48751e1935 Introduce debug tags and debug breaks
The environment variable DEBUG_TAGS can be used to control what is
printed on stderr. Example:

    DEBUG_TAGS="+all,-Archiver.*" ./restic backup foo

The variable DEBUG_BREAK can be used to set a breakpoint (implemented
using SIGSTOP):

    DEBUG_BREAK=Archiver.Snapshot ./restic backup foo
2015-01-14 16:34:30 +01:00
Alexander Neumann
203a911de9 Refactor repository structure
Merge Map data type into Tree.
2015-01-14 16:34:30 +01:00
Alexander Neumann
5691d89822 Only test once if node type is still the same 2015-01-06 22:09:39 +01:00
Alexander Neumann
248e3218cb Incremental: Check if node type is still the same 2015-01-06 22:06:57 +01:00
Alexander Neumann
33bcf31bae Fix incremental backup
Copying blobs (for unchanged files and subtrees) from old BlobList to
new BlobList was missing
2015-01-05 21:40:43 +01:00
Alexander Neumann
6eb969a492 Update modified files, store error message 2015-01-04 23:25:13 +01:00
Alexander Neumann
e543f5926c Refactor Archiver and backup command
Improve incremental backup by first scanning the tree, loading the old
tree and afterwards comparing both trees in memory.
2015-01-04 22:39:30 +01:00
Alexander Neumann
2a97e2b08a Add tree.Stat() 2015-01-04 20:16:08 +01:00
Alexander Neumann
4b70bba588 Split Scanner from Archiver, refactor Progress 2015-01-04 18:23:00 +01:00
Alexander Neumann
1d8e76a245 Add comment 2014-12-25 14:13:34 +01:00
Alexander Neumann
45e40eb27a Correctly encode non utf8 node names 2014-12-07 13:06:35 +01:00
Alexander Neumann
e2fea0d088 Rename khepri -> restic 2014-12-05 21:45:49 +01:00
Alexander Neumann
3325fa07ea Check timestamps for files 2014-11-30 22:34:21 +01:00
Alexander Neumann
f95788ed90 Limit memory usage, add several sync.Pool 2014-11-23 21:26:20 +01:00
Alexander Neumann
d1e4431514 Refactor StorageMap to BlobList 2014-11-22 21:05:18 +01:00
Alexander Neumann
4a3a6861e2 Scan directory first, then backup. Add stats. 2014-11-17 23:52:31 +01:00
Alexander Neumann
804cebde67 Rename backend subdir 'blobs' to 'data' 2014-11-16 13:22:19 +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
cbee80fc6d Add hint for osutil library 2014-10-07 23:23:18 +02:00
Alexander Neumann
30ab03b7b7 Add decrypt, refactor 2014-10-03 21:44:55 +02:00
Alexander Neumann
f0287b2c9a Restructure, adapt for max 16MB chunk size 2014-09-21 16:33:20 +02:00
Alexander Neumann
629935db5c Add CDC to backup and restore 2014-09-18 22:42:23 +02:00
Alexander Neumann
d66996e648 Move restore functionality into khepri package 2014-08-11 23:14:40 +02:00
Alexander Neumann
2428843faa Refactor 2014-08-11 22:47:24 +02:00
Alexander Neumann
13bb557cdc Restructured repository 2014-07-28 20:21:19 +02:00
Renamed from storage/tree.go (Browse further)