Commit graph

8362 commits

Author SHA1 Message Date
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
bdcdcdea7d Optimize chunker
Skip MinSize bytes at the beginning of each chunk. This increases
throughput about 30% percent.

Before:
    $ go test -v -bench . ./chunker
    === RUN TestChunker
    --- PASS: TestChunker (0.60s)
    === RUN TestChunkerReuse
    --- PASS: TestChunkerReuse (2.18s)
    PASS
    BenchmarkChunker          10     111229642 ns/op      94.27 MB/s
    --- BENCH: BenchmarkChunker
        chunker_test.go:168: 6 chunks, average chunk size: 1747626 bytes
        chunker_test.go:168: 6 chunks, average chunk size: 1747626 bytes
    ok      github.com/restic/restic/chunker    4.120s

After:
    $ go test -v -bench . ./chunker
    === RUN TestChunker
    --- PASS: TestChunker (0.48s)
    === RUN TestChunkerReuse
    --- PASS: TestChunkerReuse (1.75s)
    PASS
    BenchmarkChunker          20      81468596 ns/op     128.71 MB/s
    --- BENCH: BenchmarkChunker
        chunker_test.go:168: 6 chunks, average chunk size: 1747626 bytes
        chunker_test.go:168: 6 chunks, average chunk size: 1747626 bytes
    ok      github.com/restic/restic/chunker    4.061s
2015-01-14 16:33:41 +01:00
Alexander Neumann
cdf3336e7a Improve error message for newer files 2015-01-08 20:49:32 +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
4b070358ef fsck: more verbose error messages 2015-01-05 20:38:49 +01:00
Alexander Neumann
77c421b940 Fix error message 2015-01-05 20:17:15 +01:00
Alexander Neumann
6645cb04e6 Merge branch 'refactor-archiver' 2015-01-04 23:25:38 +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
fe231af7fc Remove error from return value of NewContentHandler 2015-01-04 20:07:30 +01:00
Alexander Neumann
4b70bba588 Split Scanner from Archiver, refactor Progress 2015-01-04 18:23:00 +01:00
Alexander Neumann
a93bc3c991 Rename functions, remove code for compare
* Archiver: Rename loadTree -> scan and LoadTree -> Scan
 * Archiver: Remove code to compare against an old snapshot/tree,
   the current implementation was really slow
2015-01-04 16:13:50 +01:00
Alexander Neumann
34afb00d55 Typo 2015-01-03 17:05:37 +01:00
Alexander Neumann
03c1ace107 Add details about the repository 2015-01-03 17:03:57 +01:00
Alexander Neumann
9defbc25d3 Update logo 2015-01-03 15:42:48 +01:00
Alexander Neumann
62c15649eb Describe threat model 2015-01-03 15:28:33 +01:00
Alexander Neumann
8708d0c167 Reformat paragraphs 2015-01-03 15:26:08 +01:00
Alexander Neumann
97c3c50f69 Correct URL in README.md 2015-01-02 23:16:42 +01:00
Alexander Neumann
5ec31a56f3 More hints for new contributors 2015-01-02 23:13:30 +01:00
Alexander Neumann
fdbedd525a Add notes for contributors to README.md 2015-01-02 23:11:14 +01:00
Alexander Neumann
5b82475d74 Merge branch 'restore-pattern', closes #69 2015-01-02 23:04:29 +01:00
Sebastian Schmidt
b1dbc6f062 Support for pattern in restore command
This just matches the passed pattern against the full source path with
filepath.Match which, in contrast go filepath.Glob, doesn't match the
directory separator with '*' and is not terribly useful that way.
Someone should replace that by a more sophisticated matcher.
2015-01-02 23:03:07 +01:00
Alexander Neumann
e986c8f9d0 Add more documentation 2015-01-02 22:45:02 +01:00
Alexander Neumann
2e28b88e3a Write prompt to stderr instead of stdout 2015-01-02 22:36:53 +01:00
Alexander Neumann
1789e6151d Add documentation 2015-01-02 18:43:59 +01:00
Alexander Neumann
a0f8476484 Add rough repository structure sketch 2015-01-02 13:14:52 +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
dd040a4132 Merge pull request #68 from yath/cmd_ls
Fix 'ls' command
2015-01-01 13:11:15 +01:00
Sebastian Schmidt
190b1cdcc7 Fix 'ls' command
CmdLs needs to implement flags.Commander, so change (CmdLs) Execute to
only take a []string to get actually called.
2015-01-01 11:30:30 +01:00
Alexander Neumann
aa8f1c680e Merge branch 'master' of github.com:restic/restic 2014-12-30 20:05:25 +01:00
Alexander Neumann
9354f053bb Merge pull request #67 from yath/typo
Fix typo
2014-12-30 20:03:52 +01:00
Sebastian Schmidt
24cb360b5d Fix typo 2014-12-29 12:39:43 +01:00
Alexander Neumann
1d8e76a245 Add comment 2014-12-25 14:13:34 +01:00
Alexander Neumann
81dddfccc1 Correct fsck command in tests 2014-12-22 14:59:46 +01:00
Alexander Neumann
0d882626d9 Merge branch 'improve-fsck' 2014-12-22 14:47:21 +01:00
Alexander Neumann
1944ab13d4 Add dangling blob detection and removal to 'fsck' 2014-12-22 14:46:54 +01:00
Alexander Neumann
a981141e49 Rename Table.Print -> Table.Write 2014-12-22 11:21:14 +01:00
Alexander Neumann
5c9c1c9dbd Merge branch 'refactor-backend' 2014-12-21 18:34:04 +01:00
Alexander Neumann
5431b025a3 Reduce code duplication in key handling 2014-12-21 18:16:22 +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
661c1e9aa1 Restructure backend 2014-12-21 17:29:58 +01:00
Alexander Neumann
0e1045301a Optimize 'cat' and 'snapshots' commands 2014-12-21 17:29:37 +01:00