Commit Graph

285 Commits

Author SHA1 Message Date
Lluís Batlle i Rossell 83aa63365a Not exporting baseNameSlice. Noone else wants it. 2016-05-09 14:46:14 +02:00
Lluís Batlle i Rossell aed73be93d Improve comment according to hound guidelines 2016-05-09 14:44:03 +02:00
Lluís Batlle i Rossell 4ea62ecbcc Traverse paths in the same order as parent snapshot
This is the 2nd partial fix to #513.

The archivepipe requires the snapshot paths and the backup paths to be
traversed in the same order, and they were sorted differently: the backup paths
by full path, and the snapshot by basename path.
2016-05-09 14:32:17 +02:00
Lluís Batlle i Rossell 60c8c90d35 Better backup parent snapshot search. Part of #513
I look for the newest snapshot that contains all supplied paths to backup.
2016-05-09 12:42:12 +02:00
Alexander Neumann 20afed4058 Checker: handle symlinks 2016-05-08 23:16:17 +02:00
Alexander Neumann a2224e380b Address style issues identified by Hound 2016-05-08 22:38:38 +02:00
Alexander Neumann 31030baca3 Add comment 2016-05-08 13:51:33 +02:00
Alexander Neumann 173940cbdf Add repository.ListPack 2016-05-08 13:51:21 +02:00
Alexander Neumann 6fc3590838 Remove repository.SaveFrom() 2016-05-08 13:13:29 +02:00
Alexander Neumann 43f7a1fcd9 Correct log statement 2016-05-08 13:09:36 +02:00
Alexander Neumann 7faf272996 Progress: Use reference to sync.Once 2016-05-08 13:04:58 +02:00
Alexander Neumann 514a43f74b Add more tests 2016-05-08 12:25:01 +02:00
Alexander Neumann 6655511ab8 checker: test file mode 2016-05-08 12:25:01 +02:00
Alexander Neumann 168cfc2f6d Add testing helper functions 2016-05-08 12:25:01 +02:00
Alexander Neumann 6cfa0d502d Add LoadAllSnapshots() 2016-05-08 12:25:01 +02:00
Alexander Neumann a996dbb9d6 check: Add more checks for nodes 2016-05-08 12:25:01 +02:00
Alexander Neumann 3f8da47a0c Fix restic s3 backend for new minio-go version 2016-05-07 23:38:41 +02:00
Alexander Neumann 4531456be5 Merge pull request #497 from Thor77/excludeFileExpandEnv
Expand environment-variables in exclude-files
2016-04-18 21:40:30 +02:00
Alexander Neumann 039019689a Merge pull request #500 from restic/fix-499
Fix exclude filters with trailing slash
2016-04-18 21:02:27 +02:00
Alexander Neumann 6fe25548bd Add another filter test 2016-04-17 22:04:42 +02:00
Alexander Neumann 9002eaa259 Fix exclude filters with trailing slash 2016-04-17 21:54:12 +02:00
Alexander Neumann ead6d11ecf Backend tests: remove debug 2016-04-17 17:39:14 +02:00
Thor77 9644399074 add environment-var expanding for exclude-files 2016-04-16 22:04:29 +02:00
Alexander Neumann 23d7464306 Umount fuse in tests
This corrects the order when the fuse mount is terminated by closing the
done channel: Before, restic would close the fuse connection and only
afterwards try to remove the mount, that does not work.

Closes #494
2016-04-13 20:18:54 +02:00
Alexander Neumann 32a5778602 Merge pull request #490 from Thor77/backupExcludeFile
add backup --exclude-file
2016-04-06 00:09:46 +02:00
Thor77 1c1eacfc94 add backup --exclude-file 2016-04-01 13:53:22 +02:00
Alexander Neumann ddfadae6f6 Fix compilation for Go 1.3 2016-03-28 16:09:28 +02:00
Alexander Neumann c8f46ce81d fs: Require Go1.4 for Linux 2016-03-28 15:48:18 +02:00
Alexander Neumann c30f4a9134 fs: remove unneeded code 2016-03-28 15:33:10 +02:00
Alexander Neumann b7713d2d34 local backend: Drop file content from cache after write 2016-03-28 15:31:25 +02:00
Alexander Neumann 5b5bb070b9 fs: Split out ClearCache from File 2016-03-28 15:31:25 +02:00
Alexander Neumann feb664620a Use fadvise() to not cache the content of files read 2016-03-28 15:26:46 +02:00
Matt Holt e6ba9e5849 Change ErrNoKeyFound message
For #438. I was just going to change it to "wrong password" but then I saw that it might actually be the case that no key could be found, so I changed it to what I did. Let me know if you'd like something different!
2016-03-11 08:21:01 -07:00
Alexander Neumann e4a6dd8c8c Use newRandReader instead of rand.New()
This needs to be done since for Go < 1.6 rand.Rand does not implement
io.Reader.
2016-03-06 14:21:02 +01:00
Alexander Neumann 18c3024171 Unexport NewPackerManager 2016-03-06 14:20:48 +01:00
Alexander Neumann 1e1368eea3 Add randReader for tests
This can be removed once we require Go 1.6.
2016-03-06 13:59:06 +01:00
Alexander Neumann cda7616c82 Remove tempdir for packerManager 2016-03-06 13:14:06 +01:00
Alexander Neumann 015cea0c50 PackerManager: Remove debug comment 2016-03-06 12:35:21 +01:00
Alexander Neumann c0b5f5a8af Fix all code which uses repository.New() 2016-03-06 12:34:23 +01:00
Alexander Neumann f956f60f9f PackerManager: use tempfiles instead of memory buffers 2016-03-06 12:26:25 +01:00
Alexander Neumann f893ec57cb Add test and benchmark for PackerManager 2016-03-05 15:58:39 +01:00
Alexander Neumann 8d1a5731f3 Remove integration test for 'optimize' 2016-02-27 13:38:05 +01:00
Alexander Neumann 04b3ce00e2 Remove command 'optimize'
It was discovered that the current code may delete still-referenced
blobs, so we'll remove the command for now.

This closes #434
2016-02-27 13:12:22 +01:00
Alexander Neumann 9386bfbafa checker: Do not use reference in checker errors 2016-02-27 13:10:35 +01:00
Alexander Neumann a613e23e34 checker: Use backend.IDSet instead of custom struct 2016-02-27 13:10:35 +01:00
Alexander Neumann 5ce1375ddd Rename non-exported function 2016-02-27 13:10:35 +01:00
Alexander Neumann 4cefd456bb Refactor rebuild-index code
This code reads all pack headers from all packs and rebuilds the index
from scratch. Afterwards, all indexes are removed. This is needed
because in #434 the command `optimize` produced a broken index that
did not contain a blob any more. Running `rebuild-index` should fix
this.
2016-02-27 13:10:35 +01:00
Alexander Neumann bc911f4609 cmd_dump: Only load pack header 2016-02-27 13:06:21 +01:00
Alexander Neumann 090920039f pack: Add test with backend.NewReadSeeker
This uses the new backend ReadSeeker with the unpacker.
2016-02-27 13:06:21 +01:00
Alexander Neumann 21a99397ff worker: fix tests
The test failed on Windows, probably because the machine used for CI was
too slow. The new test doesn't depend on timing any more.
2016-02-27 13:06:21 +01:00
Alexander Neumann 482fc9f51d Add backend.readSeeker
This struct implements an io.ReadSeeker on top of a backend. This is the
easiest way to make the packer compatible to the new backend without
loading a complete pack into a bytes.Buffer.
2016-02-27 13:06:21 +01:00
Alexander Neumann b114ab7108 cmd_dump: Allow dumping all blobs in all packs
I had the suspicion that one of my repositories contained redundant
data blobs that is not recorder in the index. In order to check this I
needed to dump information about the pack files without consulting the
index. The code here iterates over all packs and dumps the headers, and
dumps information about them in JSON (so we can use other tools to parse
that information again).
2016-02-27 13:06:21 +01:00
Alexander Neumann 4cb4a3ac7f Add separate goroutine that closes the output chan
This allows iterating over the output channel without having to start
another Goroutine outside of the worker pool. This also removes the need
for calling Wait().
2016-02-27 13:06:21 +01:00
Alexander Neumann ee422110c8 Make worker pools input/output chans symmetric
Input and output channel are now both of type `chan Job`, this makes it
possible to chain multiple worker pools together.
2016-02-27 13:06:21 +01:00
Alexander Neumann e5ee4eba53 Add worker pool
A worker pool is needed whenever something should be done concurrently.
This small library makes it easy to create a worker pool by specifying
channels, concurrency and a function that should be executed for each
job and returns a result and an error.
2016-02-27 13:06:21 +01:00
Alexander Neumann 1e0b7dbdd2 Merge pull request #477 from restic/rest-backend
rest backend: Remove indirection on http.Client
2016-02-25 22:24:00 +01:00
Alexander Neumann 17f5b524a6 local: Replace matching code with proper Readdir() 2016-02-24 22:43:04 +01:00
Alexander Neumann 4ae16d7661 repository: Use backend.ID to load index
This commit uses ParallelWorkFuncParseID() to load all indexes and
ignores file names with invalid format.

This fixes #475.
2016-02-24 22:41:32 +01:00
Alexander Neumann 77d85cee52 Merge pull request #472 from restic/update-chunker
Update chunker
2016-02-24 21:25:15 +01:00
Alexander Neumann 2ce49ea0ee Update code to use the new Chunker interface 2016-02-23 23:14:35 +01:00
Fabian Wickborn 6005bd9833 Fix relative paths in integrations tests 2016-02-23 09:21:50 +01:00
Fabian Wickborn 442780f214 Move commands to src/cmds 2016-02-23 07:21:28 +01:00
Alexander Neumann 9c47a8abfc Merge pull request #467 from fawick/master
Merging restic-server
2016-02-22 20:48:18 +01:00
Fabian Wickborn dd5680dab6 restic-server: Create tmp folder 2016-02-22 20:14:11 +01:00
Fabian Wickborn 1cdbc8e1aa restic-server: Fix folder permissions 2016-02-22 20:14:11 +01:00
Fabian Wickborn e4168fdde5 restic-server: Reduce memory footprint for saving blobs
Before, the restic-server read the whole blob (up to 8MB) into memory
prior to writing it to disk. Concurrent writes consumed a lot
of memory. This change writes the blob to a tmp file directly and
renames it afterwards in case there where no errors.
2016-02-22 20:14:11 +01:00
Fabian Wickborn 4749e610af restic-server: Fix content length for HEAD requests 2016-02-22 20:14:11 +01:00
Fabian Wickborn 51d86370a5 Fixes for the PR
- Removed external dependencies for test
- Prevent building restic-server w/ Go 1.3

Go versions 1.0, 1.1., and 1.2 are going to fail as well, but they
are "excluded" by README.md already.
2016-02-22 20:13:55 +01:00
Fabian Wickborn d86c093480 Merged the restic-server by @bchapuis
Commit ID in fd0/restic-server at time of merge is
07fae00e7ddd8751b150e2ebf0bff8b2871c77ce
2016-02-22 20:12:50 +01:00
Alexander Neumann bb7b9ef3fc Merge pull request #466 from ckemper67/sftp-path-clean
Cleaned up the sftp parsing logic.
2016-02-22 19:04:56 +01:00
Alexander Neumann 5dd65a5c19 Merge pull request #464 from restic/rest-backend
Add REST backend
2016-02-22 18:52:37 +01:00
Christian Kemper 6eb97ca6cc Cleaned up the sftp parsing logic.
Simplified and cleaned up the sftp parsing logic. Added support to
path.Clean the directory. Added additional tests.
2016-02-21 10:50:36 -08:00
Christian Kemper c2716755f1 Added missing handle to the s3.Stat log message output 2016-02-21 09:59:27 -08:00
Alexander Neumann 7087efaa79 rest backend: Remove indirection on http.Client 2016-02-21 17:06:35 +01:00
Alexander Neumann 8ad98e8040 rest backend: Fixes 2016-02-21 16:35:25 +01:00
Alexander Neumann f7a10a9b9c backend tests: Test accessing config
This commit adds real testing for accessing the config file with
different names.
2016-02-21 16:02:13 +01:00
Alexander Neumann bd621197f8 Add rest backend to ui parser 2016-02-21 15:33:13 +01:00
Alexander Neumann ec34da2d66 Add rest backend to location 2016-02-21 15:33:13 +01:00
Alexander Neumann c2348ba768 Add REST backend
This is a port of the original work by @bchapuis in
https://github.com/restic/restic/pull/253
2016-02-21 15:33:13 +01:00
Alexander Neumann 625c987d23 Move sftp test 2016-02-20 20:53:40 +01:00
Alexander Neumann 841326d713 Move build.go and run_integration_tests.go to root 2016-02-20 17:31:21 +01:00
Alexander Neumann 7b6629802b Move "doc" to root dir 2016-02-20 17:31:21 +01:00
Alexander Neumann c0bd660a9e Rename package
* github.com/restic/restic -> restic
2016-02-20 17:31:21 +01:00
Alexander Neumann 0a8ef79dad Move top-level files 2016-02-20 17:31:21 +01:00
Alexander Neumann b63399d606 Move things around for gb
This moves all restic source files to src/, and all vendored
dependencies to vendor/src.
2016-02-20 17:31:20 +01:00