Alexander Neumann
7d71bad4eb
Test if modified files are correctly saved
2016-12-10 16:36:58 +01:00
Alexander Neumann
dbdfed6343
Merge pull request #690 from zcalusic/master
...
Even if file changes size during backup, still save it
2016-12-10 12:36:56 +01:00
Alexander Neumann
5e48c1fadc
Merge pull request #688 from restic/fix-686
...
Save snapshot after saving all pack files
2016-12-10 12:33:58 +01:00
Zlatko Čalušić
deb6dd7f72
Even if file changes size during backup, still save it
...
Previously such files (typically log files) wouldn't be backed up at
all!
The proper behaviour is to backup what we can, and warn the operator
that file is possibly not complete. But it is a warning, not an error.
Closes #689
2016-12-10 12:24:45 +01:00
Alexander Neumann
c265673c8e
Save snapshot after saving all pack files
...
Closes #686
2016-12-10 11:49:09 +01:00
Jan Niehusmann
c5897e0d62
Update debug message
...
Since client.BucketExists was changed to return a separate 'found' value, instead of reporting an error when the bucket doesn't exist, the error code path does no longer imply a call to client.MakeBucket. So the second part of the debug message, "...trying to create the bucket" doesn't apply any more.
Also, changed the name of the return value from 'ok' to 'found', matching the API documentation at https://docs.minio.io/docs/golang-client-api-reference#BucketExists .
2016-12-05 23:12:30 +01:00
Jan Niehusmann
9267c25aa0
Omit "archived as %v" messages in quiet mode.
2016-12-03 10:28:49 +01:00
JP Mens
5996d671a0
Small typo in dry-run of remove snapshot
2016-12-02 17:33:05 +01:00
Alexander Neumann
e5617b5fd1
Merge pull request #675 from restic/parent-check-hostname
...
Use the hostname filter to find a parent snasphot
2016-11-19 12:42:40 +01:00
Alexander Neumann
2828003d60
Test that existing files and dirs are restored
2016-11-15 21:41:41 +01:00
Alexander Neumann
16cef3b4c6
Use the hostname filter to find a parent snasphot
...
Closes #674
2016-11-15 21:04:51 +01:00
Alexander Neumann
699f39e3cf
FindLatestSnapshot: Rename parameter to clarify meaning
2016-11-15 21:03:54 +01:00
Seb Patane
33b6a7381b
Don't consider a pre-existing directory in the restore path to be a failure
...
* When a directory already exists, CreateDirAt returns an error stating so
* This means that the restoreMetadata step is skipped, so for directories which already exist no file permissions, owners, groups, etc will be restored on them
* Not returning the error if it's a "directory exists" error means the metadata will get restored
* It also removes the superfluous "error for ...: mkdir ...: file exists" messages
* This makes the behaviour of directories consistent with that of files (which always have their content & metadata restored, regardless of whether they existed or not)
2016-11-14 17:53:09 +10:00
Alexander Thaller
b7b03dbd4a
Added new flag to backup subcommand that reads the files to backup from a file
2016-11-12 15:45:32 +01:00
Alexander Neumann
b56bde3f61
Remove fadvise
...
This commit removes the use of FADV_DONTNEED, which also purges active
cached pages for other processes.
2016-11-10 22:21:22 +01:00
Zlatko Čalušić
d8f0e7cbd1
Fix REST backend HTTP keepalive
...
This is subtle. A combination od fast client disk (read: SSD) with lots
of files and fast network connection to restic-server would suddenly
start getting lots of "dial tcp: connect: cannot assign requested
address" errors during backup stage. Further inspection revealed that
client machine was plagued with TCP sockets in TIME_WAIT state. When
ephemeral port range was finally exhausted, no more sockets could be
opened, so restic would freak out.
To understand the magnitude of this problem, with ~18k ports and default
timeout of 60 seconds, it means more than 300 HTTP connections per
seconds were created and teared down. Yeah, restic-server is that
fast. :)
As it turns out, this behavior was product of 2 subtle issues:
1) The body of HTTP response wasn't read completely with io.ReadFull()
at the end of the Load() function. This deactivated HTTP keepalive,
so already open connections were not reused, but closed instead, and
new ones opened for every new request. io.Copy(ioutil.Discard,
resp.Body) before resp.Body.Close() remedies this.
2) Even with the above fix, somehow having MaxIdleConnsPerHost at its
default value of 2 wasn't enough to stop reconnecting. It is hard to
understand why this would be so detrimental, it could even be some
subtle Go runtime bug. Anyhow, setting this value to match the
connection limit, as set by connLimit global variable, finally nails
this ugly bug.
I fixed several other places where the response body wasn't read in
full (or at all). For example, json.NewDecoder() is also known not to
read the whole body of response.
Unfortunately, this is not over yet. :( The check command is firing up
to 40 simultaneous connections to the restic-server. Then, once again,
MaxIdleConnsPerHost is too low to support keepalive, and sockets in the
TIME_WAIT state pile up. But, as this kind of concurrency absolutely
kill the poor disk on the server side, this is a completely different
bug then.
2016-11-10 09:32:07 +01:00
Alexander Neumann
51322a1055
selectFunc: handle nil
2016-11-05 12:38:33 +01:00
Alexander Neumann
c5bc802ff0
fs.DeviceID(): Return errors when fi is nil
2016-11-05 12:38:17 +01:00
Justin Clift
ecc1f92787
Remove redundant check of error var e
...
As per #649
2016-10-25 18:10:53 +01:00
Alexander Neumann
1dd72693f9
forget: Remove unneeded index loading
2016-10-24 14:01:23 +02:00
Alexander Neumann
fe1013e779
cmds/ls: Format timestamp
2016-10-19 22:11:37 +02:00
David
5f8a6cea6f
don't print status info if running in the background
...
clean
fix OS issues & format code
fix issues
2016-10-15 18:12:19 +00:00
Alexander Neumann
250b36eeb1
Improve error message for 'forget'
...
$ bin/restic forget /d 7 /w 4 /m 12
argument "/d" is not a snapshot ID, ignoring
argument "7" is not a snapshot ID, ignoring
argument "/w" is not a snapshot ID, ignoring
argument "4" is not a snapshot ID, ignoring
argument "/m" is not a snapshot ID, ignoring
cound not find a snapshot for ID "12", ignoring
2016-10-10 20:55:02 +02:00
Daniel Örn
ba8d960c8f
using backtics instead of doublequotes
2016-10-05 08:26:32 +02:00
Daniel Örn
84421a7c68
structured file with gofmt
2016-10-05 07:30:46 +02:00
Daniel Örn
5c7325f44a
Added long paths fix for samba network shares
2016-10-05 07:09:56 +02:00
Christian Kemper
a4261dcc9c
Use path.Join to create the s3 object name within the bucket.
...
path.Join already automatically skips empty path segments when
joining, so this simplifies the s3Path code.
2016-10-02 16:56:07 -07:00
Alexander Neumann
22f5fc5739
Improve help text for slice options
2016-09-29 20:39:55 +02:00
Alexander Neumann
e994cacbfe
Fix short-hand option clash
2016-09-29 20:37:45 +02:00
Alexander Neumann
feed54caef
Remove timing, simplify function matching
2016-09-28 20:10:40 +02:00
Alexander Neumann
4eddcb344e
Update calls to debug.Log()
2016-09-28 19:56:03 +02:00
Alexander Neumann
2ae06a7a01
Rework debug log function
2016-09-28 19:56:03 +02:00
Alexander Neumann
25945718a1
Fix recursive call to debug.Log
2016-09-28 19:56:03 +02:00
Alexander Neumann
3601c39177
Add comments
2016-09-27 20:22:01 +02:00
Alexander Neumann
565d72ef36
Use cobra for all commands
2016-09-27 19:53:03 +02:00
Alexander Neumann
a257a613d7
Fix debug log
2016-09-27 19:52:48 +02:00
Alexander Neumann
0a752b9fab
test helpers: Always print stack trace
2016-09-27 19:50:26 +02:00
Alexander Neumann
04d6b5da2f
Remove more unused bits
2016-09-21 20:45:18 +02:00
Alexander Neumann
1dfd3b8aa3
Remove unused bits and pieces
...
Reported by https://github.com/dominikh/go-unused
2016-09-21 20:22:32 +02:00
Alexander Neumann
0a9cbd47c7
Merge pull request #626 from rfjakob/master
...
Add "-x", "--one-file-system" option
2016-09-18 20:03:58 +02:00
Jakob Unterwurzacher
53701891a1
Add "-x", "--one-file-system" option
...
Equivalent to rsync's "-x" option.
Notes to the naming:
"--exclude-other-filesystems"
is used by Duplicity,
"--one-file-system"
is used rsync and tar.
This latter should be more familiar to the user.
2016-09-18 18:52:30 +02:00
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
Alexander Neumann
47950b82a0
Add test for loading index from documentation
2016-08-16 21:30:14 +02:00
Alexander Neumann
9ecf7070af
Implement Lookup() and Save() for new Index
2016-08-16 21:30:14 +02:00
Alexander Neumann
2310773798
Compute negative offsets ourselves in the s3 backend
2016-08-16 21:30:14 +02:00
Alexander Neumann
a60e3b5030
Make backend tests less verbose
2016-08-16 21:30:14 +02:00
Alexander Neumann
b350b443d0
Stop backend tests early on failure
2016-08-16 21:30:14 +02:00
Alexander Neumann
2c517e4a33
Add Index structures for Blobs
2016-08-16 21:30:14 +02:00
Alexander Neumann
4bdd59b4ad
Index: Add DuplicateBlobs()
2016-08-16 21:30:14 +02:00
Alexander Neumann
f5daf33322
Add pack size to ListAllPacks
2016-08-16 21:30:14 +02:00
Alexander Neumann
1058a91b39
Add option to create duplicate blobs in TestCreateSnapshot
2016-08-16 21:30:14 +02:00
Alexander Neumann
240b8f273a
Add more index tests
2016-08-16 21:30:14 +02:00
Alexander Neumann
6808523d34
Add String() for Blob
2016-08-16 21:30:14 +02:00
Alexander Neumann
bad6184ab5
Add new Index data structure
2016-08-16 21:30:14 +02:00
Alexander Neumann
6b384287f3
Return error when it occurs
2016-08-16 21:30:14 +02:00
Alexander Neumann
ef33cf12ca
Fix Unpacker for packs < 2048 byte
2016-08-16 21:30:14 +02:00
Alexander Neumann
a5cbbb8b5a
Fix BufferLoader for negative offset
2016-08-16 21:30:14 +02:00
Alexander Neumann
71924fb7c0
Add tests for Load() with negative offset
2016-08-16 21:30:14 +02:00
Alexander Neumann
b0565015cc
Remove ReadSeeker
2016-08-16 21:30:14 +02:00
Alexander Neumann
fa283c6ecd
Remove unused GetReader()
2016-08-16 21:30:14 +02:00
Alexander Neumann
94d157d97a
Introduce interface pack.Loader
2016-08-16 21:30:14 +02:00
Alexander Neumann
f72f3dbc6a
Buffer last 2048 bytes of a file for unpack
2016-08-16 21:28:55 +02:00
Alexander Neumann
3c3a180417
Move RandomID() to backend package
2016-08-16 21:28:55 +02:00
Alexander Neumann
fd6c854a21
Add TestResetRepository and BenchmarkCreateSnapshot
2016-08-16 21:28:55 +02:00
Alexander Neumann
e9cddc0be5
Fix TestFindUsedBlobs
2016-08-16 21:28:55 +02:00
Alexander Neumann
d7e5f11b78
Export FindUsedBlobs
2016-08-16 21:28:55 +02:00
Alexander Neumann
2b1b6d8c2a
Export ListAllPacks
2016-08-16 21:28:55 +02:00
Alexander Neumann
acc2fa5816
Fix TestRepack
...
* Decrease number of blobs for use in test
* Fail the test when there's a duplicate blob
2016-08-16 21:28:54 +02:00
Alexander Neumann
6285f31604
Use pack.BlobSet instead of backend.IDSet
2016-08-16 21:28:54 +02:00
Alexander Neumann
3cca831b2e
Fix invalid type in newly created packs
2016-08-16 21:28:54 +02:00
Alexander Neumann
cff6fea32a
Fix 'cat' command
2016-08-16 21:28:54 +02:00
Alexander Neumann
17e1872544
Switch order of parameters to repo.LoadBlob()
2016-08-16 21:28:54 +02:00
Alexander Neumann
246302375d
Index: Add multiple packs per blob, pack.Type
...
Change the index so that a blob can be contained in multiple packs.
Require passing the blob type to all lookup functions.
2016-08-16 21:28:54 +02:00
Alexander Neumann
231da4ff80
Remove old repacking code
2016-08-16 21:28:54 +02:00
Alexander Neumann
1b4b469440
Add pack.Handle and pack.Handles
2016-08-16 21:28:54 +02:00
Alexander Neumann
35e3762e37
Remove dead code
2016-08-16 21:28:54 +02:00
Alexander Neumann
7e732dbd2d
Allow multiple entries in the index
2016-08-16 21:28:54 +02:00
Alexander Neumann
8b4d4ec25f
Fix TestCreateSnapshot, do not store duplicate data
2016-08-16 21:28:54 +02:00
Alexander Neumann
035d0aeb31
Do not create duplicate content for tests
2016-08-16 21:28:54 +02:00
Alexander Neumann
f1bc181c5b
Add more checks for tests
2016-08-16 21:28:54 +02:00
Alexander Neumann
50b724ca23
Fix stylistic issues with FindUsedBlobs
2016-08-16 21:28:54 +02:00
Alexander Neumann
6227821b4e
Move functions to correct file
2016-08-16 21:28:54 +02:00
Alexander Neumann
810056c2bc
Correct packages for tests
2016-08-16 21:28:54 +02:00
Alexander Neumann
34b3e3a095
Split index/repack functions to different files
2016-08-16 21:28:54 +02:00
Alexander Neumann
bdd085e9f1
Prevent loops when finding used blobs
2016-08-16 21:28:54 +02:00
Alexander Neumann
ffc3503e6f
Add first version of FindUsedBlobs
2016-08-16 21:28:54 +02:00
Alexander Neumann
51b16ad57d
Add handy functions to backend.IDSet
2016-08-16 21:28:54 +02:00
Alexander Neumann
723592d923
Move FindUsedBlobs to package restic
2016-08-16 21:28:54 +02:00
Alexander Neumann
22aa17091b
Add test for FindUsedBlobs
2016-08-16 21:28:54 +02:00
Alexander Neumann
4720a7d807
Allow specifying chunker polynomial for tests
2016-08-16 21:28:54 +02:00
Alexander Neumann
d5323223f4
Change repository Init() function to allow better testing
2016-08-16 21:28:54 +02:00
Alexander Neumann
fe79177b40
Make TestCreateSnapshot return the snapshot itself
2016-08-16 21:28:54 +02:00
Alexander Neumann
5c32ae15c2
Move test checking repo code to checker package
2016-08-16 21:28:54 +02:00
Alexander Neumann
6c2334f505
Make TestCreateSnapshot less verbose
2016-08-16 21:28:54 +02:00
Alexander Neumann
b55ac2afd6
Make test files in test repo less random
2016-08-16 21:28:54 +02:00
Alexander Neumann
d9012b4a64
Add trees recursively to test snapshot
2016-08-16 21:28:54 +02:00
Alexander Neumann
952f124238
Use RandReader instead of rand directly
...
This is a fix to be backwards-compatible with Go < 1.6.
2016-08-16 21:28:54 +02:00
Alexander Neumann
14db71d3fa
Move RandReader to repository package
2016-08-16 21:28:54 +02:00
Alexander Neumann
f59ffcaeae
Correct comment
2016-08-16 21:28:54 +02:00
Alexander Neumann
d609e4a986
Extended plaintext buffer if necessary
2016-08-16 21:28:54 +02:00
Alexander Neumann
0e6c72ad1d
Implement Repack()
2016-08-16 21:28:54 +02:00