Commit Graph

212 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