Alexander Neumann
68b462d057
fuse: Add test for same timestamps
2016-09-18 18:30:25 +02:00
Alexander Neumann
649f789190
fuse: Fix test for timestamps with same second
2016-09-18 18:13:39 +02:00
Alexander Neumann
5494c1858e
fuse: correctly handle snapshots
...
The fuse code kept adding snapshots to the top-level dir "snapshots". In
addition, snapshots with the same timestamp (same second) were not added
correctly, they will now be suffixed by an incrementing counter, e.g.:
dr-xr-xr-x 1 fd0 users 0 Sep 18 15:01 2016-09-18T15:01:44+02:00
dr-xr-xr-x 1 fd0 users 0 Sep 18 15:01 2016-09-18T15:01:48+02:00
dr-xr-xr-x 1 fd0 users 0 Sep 18 15:01 2016-09-18T15:01:48+02:00-1
Closes #624
2016-09-18 15:04:39 +02:00
Alexander Neumann
b090c73bd4
Remove wrapper functions in errors package
...
This way, our own errors package does not appear in the stack traces.
2016-09-18 13:28:59 +02:00
Alexander Neumann
2b9a408ccc
Return a fatal for location.Parse
2016-09-18 13:28:41 +02:00
Alexander Neumann
83c35bd6b5
Do not print stack trace when open repo failed
...
Closes #622
2016-09-18 13:24:46 +02:00
Alexander Neumann
a9af896ddd
Add verbose error when marshalling a node fails
...
This code is introduced to watch for issue #529 , in which two users
describe that restic failed encoding a time in a node to JSON with the
error message:
panic: json: error calling MarshalJSON for type *restic.Node: json: error calling MarshalJSON for type time.Time: Time.MarshalJSON: year outside of range [0,9999]
The error message now is:
panic: Marshal: json: error calling MarshalJSON for type *restic.Node: node /home/fd0/shared/work/restic/restic/.git/hooks/applypatch-msg.sample has invalid ModTime year -1: -0001-01-02 03:04:05.000000006 +0053 LMT
2016-09-17 10:43:04 +02:00
Alexander Neumann
64fe9ec048
Update github.com/jessevdk/go-flags
2016-09-15 22:29:49 +02:00
Alexander Neumann
d4a2d70089
Retry umount for integration tests
2016-09-15 21:37:50 +02:00
Alexander Neumann
4ffca0f4b4
Improve integration tests for fuse
2016-09-15 21:17:20 +02:00
Alexander Neumann
a0f3e94655
fuse: handle duplicate timestamps for snapshots
...
This closes #606 , which fails because several snapshots are created with
exactly the same timestamp, and the code checks that for each snapshot
there is a dir in the fuse mount. This fails for colliding timestamps,
so we now add a suffix "-1", "-2" etc for each duplicate timestamp.
2016-09-15 21:15:49 +02:00
Alexander Neumann
6485a6cdc0
Simplify mount logic
2016-09-15 19:59:07 +02:00
Alexander Neumann
3975d76f23
Correct filenames for expire policy tests
2016-09-13 21:20:41 +02:00
Alexander Neumann
bf6602bc1b
Update golden file
2016-09-13 21:19:57 +02:00
Alexander Neumann
828267aaa3
Fix status for stdin archiver
2016-09-13 21:01:29 +02:00
Alexander Neumann
a77c615909
Fix 'forget' command with tags
2016-09-13 20:56:18 +02:00
Alexander Neumann
cfdf4c92f7
Add --keep-tag
to forget
command
2016-09-13 20:37:11 +02:00
Alexander Neumann
0f9fb37c78
Add tags to forget command
2016-09-13 20:20:55 +02:00
Alexander Neumann
673bce936e
Add tags to 'backup' and 'snapshots' commands
2016-09-13 20:20:52 +02:00
Alexander Neumann
1f83635267
Add tags to snapshots and filter
2016-09-13 20:12:55 +02:00
Alexander Neumann
ceb4a3ecc0
Merge pull request #613 from restic/read-password-from-file
...
Read password from file
2016-09-12 20:37:08 +02:00
Alexander Neumann
223dc78acb
Improve statistics for prune
...
Sample:
counting files in repo
building new index for repo
[0:00] 100.00% 22 / 22 packs
repository contains 22 packs (1377 blobs) with 90.610 MiB bytes
processed 1377 blobs: 0 duplicate blobs, 0B duplicate
load all snapshots
find data that is still in use for 1 snapshots
[0:00] 100.00% 1 / 1 snapshots
found 409 of 1377 data blobs still in use, removing 968 blobs
will delete 10 packs and rewrite 10 packs, this frees 64.232 MiB
creating new index
[0:00] 100.00% 7 / 7 packs
saved new index as df467c6e
done
Closes #581
2016-09-12 14:26:47 +02:00
Alexander Neumann
65afeba19a
Add option to read the password from a file
2016-09-12 14:09:22 +02:00
Alexander Neumann
e443454c4b
Add OS and Arch to 'version' output
2016-09-04 15:46:50 +02:00
Alexander Neumann
b628bcee27
Remove redundant ParseID
2016-09-04 14:38:18 +02:00
Alexander Neumann
dfc0cbf3a8
Use one test password
2016-09-04 14:30:14 +02:00
Alexander Neumann
512a92895f
Rename WithTestEnvironment -> Env
2016-09-04 14:29:04 +02:00
Alexander Neumann
6ab425f130
Remove SetupRepo
2016-09-04 13:24:51 +02:00
Alexander Neumann
f5b9ee53a3
Fix mock.Repository
2016-09-04 13:18:25 +02:00
Alexander Neumann
ea073f58cf
Correct comment
2016-09-04 13:08:09 +02:00
Alexander Neumann
bef5c4acb8
Add mock.Repository, Rework SetupRepo
2016-09-04 12:52:43 +02:00
Alexander Neumann
b5b3c0eaf8
Add repository.SaveTree
2016-09-03 21:10:25 +02:00
Alexander Neumann
1fb80bf0e2
Fix fuse mount
2016-09-03 21:10:25 +02:00
Alexander Neumann
436332d5f2
LoadDataBlob -> LoadBlob
2016-09-03 21:10:25 +02:00
Alexander Neumann
fe8c12c798
Replace repolitoy.SaveAndEncrypt to SaveBlob()
2016-09-03 21:10:25 +02:00
Alexander Neumann
1cc59010f5
Remove LoadJSONPack, un-export loadBlob
2016-09-03 21:10:25 +02:00
Alexander Neumann
878c1cd936
Add more comments
2016-09-03 21:10:25 +02:00
Alexander Neumann
5170c4898a
Address hound comments
2016-09-03 21:10:25 +02:00
Alexander Neumann
2054e3c026
Fix tests
2016-09-03 21:10:25 +02:00
Alexander Neumann
ffbe05af9b
Rework crypto, use restic.Repository everywhere
2016-09-03 21:10:25 +02:00
Alexander Neumann
84f95a09d7
Introduce LoadTreeBlob and LoadDataBlob
2016-09-03 21:10:25 +02:00
Alexander Neumann
573410afab
Fix archiver test
2016-09-03 21:10:25 +02:00
Alexander Neumann
619939ccd9
Reorder methods in interface Repository
2016-09-03 21:10:25 +02:00
Alexander Neumann
714a5d1dc4
Move tree walker to restic/walk
2016-09-03 21:10:25 +02:00
Alexander Neumann
bc42dbdf87
Create package restic/errors
2016-09-03 21:10:24 +02:00
Alexander Neumann
765b5437bd
Fix command 'dump'
2016-09-03 21:10:24 +02:00
Alexander Neumann
5d7b38cabf
Remove sentinel errors
2016-09-03 21:10:24 +02:00
Alexander Neumann
debf1fce54
Remove IDSize, TestRandomID -> NewRandomID
2016-09-03 21:10:24 +02:00
Alexander Neumann
0045f2fb61
Remove functions
2016-09-03 21:10:24 +02:00
Alexander Neumann
5764b55aee
Rename Node.FileType -> Type
2016-09-03 21:10:24 +02:00
Alexander Neumann
5e3a41dbd2
Rename struct member FileType -> Type
2016-09-03 21:10:24 +02:00
Alexander Neumann
88d0f24ce7
Reduce lock timeout to zero
2016-09-03 21:10:24 +02:00
Alexander Neumann
eb6e3ba8b3
Fix imported package
2016-09-03 21:10:24 +02:00
Alexander Neumann
528c301891
Last fixes for integration tests
2016-09-03 21:10:24 +02:00
Alexander Neumann
f7ae0cb78f
Fix cmds/restic for new structure
2016-09-03 21:10:24 +02:00
Alexander Neumann
3695ba5882
Tests pass for restic/
2016-09-03 21:10:24 +02:00
Alexander Neumann
4c95d2cfdc
wip
2016-09-03 21:10:24 +02:00
Alexander Neumann
cc6a8b6e15
wip
2016-09-03 21:10:24 +02:00
Alexander Neumann
51d8e6aa28
wip
2016-09-03 21:10:24 +02:00
Alexander Neumann
f0600c1d5f
wip
2016-09-03 21:10:24 +02:00
Alexander Neumann
90da66261a
Copy ID from backend to restic
2016-09-03 21:10:24 +02:00
Alexander Neumann
82c2dafb23
Copy interfaces and basic types to package restic/
2016-09-03 21:10:24 +02:00
Alexander Neumann
bfdd26c541
Remove (unused) cache implementation
2016-09-03 21:10:24 +02:00
Alexander Neumann
e699f6d1bd
Update doc comment
2016-09-03 21:10:24 +02:00
Alexander Neumann
1aa52e5e1e
Replace lowlevel syscall to restore symlink times
2016-08-30 21:45:16 +02:00
Alexander Neumann
8d90588020
Add better error message for 'cat'
2016-08-30 21:19:04 +02:00
Alexander Neumann
9cf63c99cf
Wrap errors #3
2016-08-29 22:16:58 +02:00
Alexander Neumann
4a0f77650b
Wrap errors #2
2016-08-29 21:54:50 +02:00
Alexander Neumann
b53679a24d
Wrap errors
2016-08-29 21:38:34 +02:00
Alexander Neumann
b06845c545
Always use errors.Cause() for testing error values
2016-08-29 19:52:03 +02:00
Alexander Neumann
c55b6ee544
Add restic.Fatal/f
...
This is a new error which implements the restic.Fataler interface.
Errors of this type are written to stderr, the restic exits. For all
other errors, restic prints the stack trace (if available).
2016-08-29 19:52:00 +02:00
Alexander Neumann
045f545085
repository: Handle errors correctly
2016-08-29 19:23:50 +02:00
Alexander Neumann
d3f4c816c7
Print error stack if available
2016-08-29 19:23:50 +02:00
Alexander Neumann
72aa6be38d
Replace fmt.Errorf() by errors.Errorf()
2016-08-29 19:23:50 +02:00
Alexander Neumann
444a268ce0
Replace stdlib errors with github.com/pkg/errors
2016-08-29 19:23:50 +02:00
Alexander Neumann
17a38faa43
Drop dependency github.com/juju/errors
2016-08-29 19:23:50 +02:00
Alexander Neumann
f51bc8e9b9
Fix panic for debug.Log() with empty string
2016-08-28 22:43:05 +02:00
Alexander Neumann
3af8f53097
Allow 'cat' for tree blobs
2016-08-28 21:23:46 +02:00
Alexander Neumann
6c6b0e2395
cat: Add warning when pack was modified
2016-08-28 21:21:04 +02:00
Alexander Neumann
26351522c5
Merge pull request #594 from restic/fix-checker
...
Remove check for filemode 0
2016-08-28 21:09:02 +02:00
Alexander Neumann
dec2e4788e
Remove flaky test
2016-08-28 21:06:27 +02:00
Alexander Neumann
f9cd736b33
Fix flaky test
2016-08-28 21:04:35 +02:00
Alexander Neumann
88634dac3a
Remove check for filemode 0
2016-08-28 20:04:09 +02:00
Alexander Neumann
83924d0864
Improve error message when sftp fails
...
Also add a prefix for all errors written to stderr by the client
2016-08-28 19:56:46 +02:00
Alexander Neumann
22bde5b277
sftp: Add debug log messages
2016-08-28 19:47:12 +02:00
Alexander Neumann
cdbdf74811
Remove debug output for tests
2016-08-28 19:30:56 +02:00
Alexander Neumann
db16702263
Report errors to stderr for tests
2016-08-28 19:30:56 +02:00
Alexander Neumann
5dd137d53e
Improve error handling with the ssh subprocess
2016-08-28 19:30:56 +02:00
Alexander Neumann
ed09887d9e
Fix panic when parsing sftp URIs
...
Closes #587
2016-08-28 19:30:56 +02:00
Alexander Neumann
196bbbd25b
local/sftp: Fix broken error handling
...
This yields the error messages for a full backup location:
panic: write /home/fd0/mnt/temp/tmp/temp-987810174: no space left on device
Closes #540
Also connected to #574
2016-08-28 18:54:58 +02:00
Lluís Batlle i Rossell
3acf03986a
On prune report, packs instead of files + fix counter
2016-08-27 20:04:35 +02:00
Alexander Neumann
12a904eb4b
Fix reading password from stdin
...
This fixes a bug introduced in #585 , it must by checked for stdin and
stdout separately whether it is a terminal.
2016-08-27 18:31:46 +02:00
Alexander Neumann
7f06ec98b8
Merge pull request #585 from trbs/progress_without_terminal
...
show progress every second when run non interactively
2016-08-27 10:10:18 +02:00
Alexander Neumann
b2a67d458c
Remove unneeded packs without repacking
2016-08-25 22:35:22 +02:00
Alexander Neumann
de88fb2022
Simplify pack.List
2016-08-25 22:25:55 +02:00
trbs
71263b5090
show progress every second when run non interactively
2016-08-25 22:13:47 +02:00
Alexander Neumann
3fd1e4a992
Add backend.ReaderAt
2016-08-25 21:49:00 +02:00
Alexander Neumann
9f752b8306
Rework function for listing packs
2016-08-25 21:08:16 +02:00
Alexander Neumann
e07ae7631c
Add more safety checks for Unpacker
2016-08-23 22:21:29 +02:00
Jan Stürtz
91c458bf74
Fixed gofmt
2016-08-22 22:07:10 +02:00
Jan Stürtz
374b1144de
Dont't guess the max width, get it from the terminal
2016-08-22 17:27:58 +02:00
Jan Stürtz
f05b0871e9
fixed maxlen computation (off by one) on small terminals
2016-08-22 17:27:03 +02:00
Jan Stürtz
4cb8fe3210
Fixed style hints from hound
...
- no else, when if has a return
- Improve Comment on Function
2016-08-21 23:10:28 +02:00
Jan Stürtz
08eb5b42eb
Fix progress output on Windows
...
The windows cmd shell is not aware of ANSI escape sequences and
does print them uninterpreted to the console. This is ugly.
Added a function to generate platform specific string for the escape sequence. On Windows this will be 79 white spaces with
a trailing \r.
2016-08-21 22:38:22 +02:00
Alexander Neumann
ebd3723a06
Properly close the minio object on Stat()
...
Closes #544
2016-08-21 16:15:41 +02:00
Alexander Neumann
06b23edb39
Fix code for newer minio-go
2016-08-21 16:14:58 +02:00
Alexander Neumann
a3492d69dd
Use low-security scrypt KDF parameters for testing
2016-08-21 13:42:04 +02:00
Alexander Neumann
8e24c51233
Fix commets for constants
2016-08-21 13:13:05 +02:00
Alexander Neumann
d8107f77aa
Limit the number of key files checked on SearchKey
2016-08-21 13:10:16 +02:00
Alexander Neumann
79e950b710
Remove dead code
2016-08-21 13:10:15 +02:00
Alexander Neumann
f0d7f3f1bd
Calibrate scrypt for the current hardware
...
Closes #17
2016-08-21 13:10:08 +02:00
Alexander Neumann
9afec53c55
Remove crypto reader/writer (unused)
2016-08-21 13:10:08 +02:00
Alexander Neumann
11098d6eb0
Move KDF() to kdf.go
2016-08-21 13:10:08 +02:00
Alexander Neumann
d965d703d1
Reduce duplicate code in wrappers for os
2016-08-21 10:42:07 +02:00
Alexander Neumann
b20921d836
Use constants from /x/sys/unix
2016-08-21 10:36:20 +02:00
Alexander Neumann
2be0aa9dbc
Merge pull request #518 from restic/implement-prune
...
Implement prune
2016-08-21 09:22:22 +02:00
Alexander Neumann
aa29c68189
Fix progress for new index
2016-08-20 20:44:57 +02:00
Alexander Neumann
d3da30e8fb
Use UTC for snapshot time based tests
2016-08-20 18:49:02 +02:00
Alexander Neumann
458448357c
Add help texts which cross-line prune/forget
2016-08-20 18:33:24 +02:00
Alexander Neumann
27d0909302
forget: Remove message when no policy is specified
2016-08-20 18:15:36 +02:00
Alexander Neumann
5f0ebb71b2
forget: Allow filtering for a hostname
2016-08-20 17:59:47 +02:00
Alexander Neumann
00f647dc92
forget: Join paths by ":"
2016-08-20 17:59:10 +02:00
Alexander Neumann
8e7202bd6a
Rename function in debug 'dump' command
2016-08-20 17:54:27 +02:00
Alexander Neumann
5cf7c827b8
forget: Do nothing if no policy is configured
2016-08-20 17:53:03 +02:00
Alexander Neumann
71f7f4f543
Add ExpirePolicy.Empty()
2016-08-20 17:51:48 +02:00
Alexander Neumann
bf47dba1c4
Add 'forget' command
2016-08-20 17:43:25 +02:00
Alexander Neumann
cbd457e557
Add Hourly expire functions
2016-08-20 15:55:23 +02:00
Alexander Neumann
6cf4b81558
Add functions to filter snapshots
2016-08-20 15:22:40 +02:00
Alexander Neumann
bb84d351f1
Revert "ID: move Str() to non-pointer receiver"
...
This reverts commit f102406cd7
.
2016-08-19 20:45:19 +02:00
Alexander Neumann
a107e3cc84
Correct comment
2016-08-19 20:36:24 +02:00
Alexander Neumann
2a2fb74ba8
Merge pull request #569 from restic/fix-568
...
Use the platform-independent function for joining
2016-08-19 17:53:09 +02:00
Alexander Neumann
bd819a5e81
Fix panic
2016-08-16 21:59:43 +02:00
Alexander Neumann
162629571d
Add BenchmarkFindUsedBlobs
2016-08-16 21:30:14 +02:00
Alexander Neumann
2c04ad3c29
TestCreateSnapshot: free buffer
2016-08-16 21:30:14 +02:00
Alexander Neumann
238d3807e9
prune: Format duplicate bytes properly
2016-08-16 21:30:14 +02:00
Alexander Neumann
7f9d227725
Use progress in prune command
2016-08-16 21:30:14 +02:00
Alexander Neumann
8de6e5a627
Add progress option to index
2016-08-16 21:30:14 +02:00
Alexander Neumann
8d735cf6a9
Explicitely specify supersedes for new index
2016-08-16 21:30:14 +02:00
Alexander Neumann
29bb845f0e
Rebuild index at the end of prune
2016-08-16 21:30:14 +02:00
Alexander Neumann
1bb2d59e38
Add Save() method to Index
2016-08-16 21:30:14 +02:00
Alexander Neumann
3ceb2ad3cf
Progress: Call OnUpdate before OnDone
2016-08-16 21:30:14 +02:00
Alexander Neumann
009c803c8a
prune: Use new Index
2016-08-16 21:30:14 +02:00
Alexander Neumann
c0ef1ec6fd
Add RemovePack for index
2016-08-16 21:30:14 +02:00
Alexander Neumann
69c2e8ce7e
Add first version of the prune
command
2016-08-16 21:30:14 +02:00
Alexander Neumann
f102406cd7
ID: move Str() to non-pointer receiver
2016-08-16 21:30:14 +02:00
Alexander Neumann
302619a11a
Move interfaces to package restic/types
2016-08-16 21:30:14 +02:00
Alexander Neumann
80bcae44e2
Decouple ListAllPacks from repository
2016-08-16 21:30:14 +02:00
Alexander Neumann
1f263a7683
Decouple index/ and repository/
2016-08-16 21:30:14 +02:00
Alexander Neumann
3b57075109
Add global interface Repository
2016-08-16 21:30:14 +02:00
Alexander Neumann
3fa7304e94
Add interfaces to ListAllPacks
2016-08-16 21:30:14 +02:00