Alexander Neumann
85055d1c68
Merge pull request #1187 from FiloSottile/patch-1
...
internal/crypto: small simplifications
2017-08-29 20:43:15 +02:00
Michael Pratt
e4c469c149
debug: properly handle interrupted profiles
...
By default (i.e., without profile.NoShutdownHook), profile.Start listens
for SIGINT and will stop the profile and call os.Exit(0).
restic already listens for SIGINT and runs its own cleanup handlers
before calling os.Exit(0).
As is, these handlers are racing when an interrupt occurs, and in my
experience, restic tends to win the race, resulting in an unusable
profile.
Eliminate the race and properly stop profiles on interrupt by disabling
package profile's signal handler and instead stop the profile in a
restic cleanup handler.
2017-08-28 22:03:26 -07:00
Filippo Valsorda
9940e8d9f1
internal/crypto: small simplifications
...
* append operates on len, not cap (not a bug since len is set to cap above, but let's avoid the confusion)
* no need to extend ciphertext again to cap after we made it big enough
* make consistent use of ciphertext[:ivSize] vs iv[:]
* make all input problems errors and impossible/catastrophic cases panics
2017-08-29 00:30:06 +02:00
Filippo Valsorda
3dccca1f27
doc/design: fix keys.data MAC format description
...
"not including the last 32 byte" was wrong, should have been 16 bytes. But the whole description is redundant anyway.
2017-08-29 00:22:11 +02:00
Alexander Neumann
22e96a37f8
Merge pull request #1184 from prattmic/docs
...
Doc cleanup and mention restore include/exclude
2017-08-28 21:14:48 +02:00
Alexander Neumann
48b1ab5aaf
Merge pull request #1182 from restic/fix-1167
...
local: do not create dirs below data/ for non-existing dir
2017-08-28 21:13:24 +02:00
Alexander Neumann
0230fa188f
Add entry to CHANGELOG
2017-08-28 21:13:14 +02:00
Alexander Neumann
4118ce876e
Merge pull request #1185 from prattmic/gcs_panic
...
gs: fix nil dereference
2017-08-28 21:11:30 +02:00
Michael Pratt
9537bc561d
gs: fix nil dereference
...
info can be nil if err != nil, resulting in a nil dereference while
logging:
$ # GCS config
$ ./restic init
debug enabled
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x935947]
goroutine 1 [running]:
github.com/restic/restic/internal/backend/gs.(*Backend).Save(0xc420012690, 0xe84e80, 0xc420010448, 0xb57149, 0x3, 0xc4203fc140, 0x40, 0xe7be40, 0xc4201d8f90, 0xa0, ...)
src/github.com/restic/restic/internal/backend/gs/gs.go:226 +0x6d7
github.com/restic/restic/internal/repository.AddKey(0xe84e80, 0xc420010448, 0xc4202f0360, 0xc42000a1b0, 0x4, 0x0, 0xa55b60, 0xc4203043e0, 0xa55420)
src/github.com/restic/restic/internal/repository/key.go:235 +0x4a1
github.com/restic/restic/internal/repository.createMasterKey(0xc4202f0360, 0xc42000a1b0, 0x4, 0xa55420, 0xc420304370, 0x6a6070)
src/github.com/restic/restic/internal/repository/key.go:62 +0x60
github.com/restic/restic/internal/repository.(*Repository).init(0xc4202f0360, 0xe84e80, 0xc420010448, 0xc42000a1b0, 0x4, 0x1, 0xc42030a440, 0x40, 0x32a4573d3d9eb5, 0x0, ...)
src/github.com/restic/restic/internal/repository/repository.go:403 +0x5d
github.com/restic/restic/internal/repository.(*Repository).Init(0xc4202f0360, 0xe84e80, 0xc420010448, 0xc42000a1b0, 0x4, 0xe84e40, 0xc42004ad80)
src/github.com/restic/restic/internal/repository/repository.go:397 +0x12c
main.runInit(0xc420018072, 0x16, 0x0, 0x0, 0x0, 0xe84e40, 0xc42004ad80, 0xc42000a1b0, 0x4, 0xe7dac0, ...)
src/github.com/restic/restic/cmd/restic/cmd_init.go:47 +0x2a4
main.glob..func9(0xeb5000, 0xedad70, 0x0, 0x0, 0x0, 0x0)
src/github.com/restic/restic/cmd/restic/cmd_init.go:20 +0x8e
github.com/restic/restic/vendor/github.com/spf13/cobra.(*Command).execute(0xeb5000, 0xedad70, 0x0, 0x0, 0xeb5000, 0xedad70)
src/github.com/restic/restic/vendor/github.com/spf13/cobra/command.go:649 +0x457
github.com/restic/restic/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0xeb3e00, 0xc420011650, 0xa55b60, 0xc420011660)
src/github.com/restic/restic/vendor/github.com/spf13/cobra/command.go:728 +0x339
github.com/restic/restic/vendor/github.com/spf13/cobra.(*Command).Execute(0xeb3e00, 0x25, 0xc4201a7eb8)
src/github.com/restic/restic/vendor/github.com/spf13/cobra/command.go:687 +0x2b
main.main()
src/github.com/restic/restic/cmd/restic/main.go:72 +0x268
(The error was likely because I had just enabled the GCS API. Subsequent
runs were fine.)
2017-08-27 21:36:04 -07:00
Michael Pratt
ae43c47ca8
doc: add mention of restore --exclude/--include
...
There is a lot more detail that could be added here, but it is worth
getting things off the ground with at least a mention that it is
possible to restore individual files.
Updates #396
2017-08-27 18:36:00 -07:00
Michael Pratt
2fa4060991
doc: fix inconsistencies
...
* Replace references to ~/shared/work/web which should be ~/web.
* Replace references to ~/tmp which should be /tmp.
* Restore /home/art to /tmp/restore-art instead of /tmp/restore-work,
which is clearly a copy/paste from the command above.
2017-08-27 18:35:01 -07:00
Alexander Neumann
f9a934759f
sftp: Improve error handling for non-existing dir
2017-08-27 20:53:04 +02:00
Alexander Neumann
3686b1ffe5
local: Create directories below data/ if it exists
2017-08-27 20:52:58 +02:00
Alexander Neumann
ea017a49c3
local: Add test for #1167
...
It was discovered that restic creates directories when a non-existing
directory is specified as a local repository.
2017-08-27 20:38:46 +02:00
Alexander Neumann
3559f9c776
Merge pull request #1174 from pwaring/patch-1
...
Update minimum Go version
2017-08-25 21:26:13 +02:00
Paul Waring
637f57ca71
Update minimum Go version
...
Minimum version is now 1.8 according to build.go (from latest master, cloned a few minutes ago):
```
paul@voga:~/third-dev/restic$ go run build.go
Go version go1.7.4 detected, restic requires at least Go 1.8
exit status 1
```
2017-08-24 19:51:11 +01:00
Alexander Neumann
4e60156b45
Add entry to CHANGELOG
2017-08-18 19:50:32 +02:00
Alexander Neumann
af9946b098
Merge pull request #1164 from ricardoseriani/fix-key-remove-command
...
Change key rm command to key remove
2017-08-18 19:49:50 +02:00
Ricardo Seriani
b7d4b0f821
Update man pages
2017-08-17 16:44:28 -03:00
Ricardo Seriani
62ed776a8c
Change key rm command to key remove
...
Change key rm command to key remove, to follow manual and other commands
2017-08-17 11:03:26 -03:00
Loic Nageleisen
f880ff21aa
Fixing restore with excluded
...
An exclude filter is basically a 'wildcard but foo', so even if a
childMayMatch, other children of a dir may not, therefore childMayMatch
does not matter, but we should not go down unless the dir is selected
for restore.
2017-08-16 15:25:02 +02:00
Loic Nageleisen
4a36993c19
Smarter filter when children won't match
...
This improves restore performance by several orders of magniture by not
going through the whole tree recursively when we can anticipate that no
match will ever occur.
2017-08-16 15:25:02 +02:00
Alexander Neumann
d87b2f189d
Merge pull request #1157 from ceh/defer-file-close-after-err-check
...
internal: check error before deferring file Close()
2017-08-13 19:50:05 +02:00
Alexander Neumann
f9a097a8c0
Merge pull request #1158 from ceh/fix-contributing-typo
...
Fix contribution typo
2017-08-13 19:49:03 +02:00
Alexander Neumann
d43358b6dd
Correct URL to forum
2017-08-13 19:47:54 +02:00
Alexander Neumann
8058f196e1
Merge pull request #1156 from dimejo/patch-1
...
Readme: Correct link formatting
2017-08-13 19:47:31 +02:00
Emil Hessman
e13e6f34d2
Fix contribution typo
2017-08-13 19:35:53 +02:00
Emil Hessman
c2ff7150aa
internal: check error before deferring file Close()
...
If there is an error, file will be `nil`. We should check the returned error before deferring file `Close()`.
2017-08-13 19:28:13 +02:00
dimejo
a899621930
Readme: Correct link formatting
2017-08-13 15:07:40 +02:00
Alexander Neumann
a0966e1d1d
Update README
2017-08-11 21:38:18 +02:00
Alexander Neumann
e2464382ed
Update issue template
2017-08-11 21:36:10 +02:00
Alexander Neumann
095bc79dc3
Correct README #2
2017-08-09 21:58:20 +02:00
Alexander Neumann
1fd3c2488e
Correct README
2017-08-09 21:57:55 +02:00
Alexander Neumann
2ee8485886
Update README
2017-08-09 21:56:41 +02:00
Alexander Neumann
b67c178672
Merge pull request #1149 from restic/azure-support
...
Add Azure blob storage as backend
2017-08-09 21:30:35 +02:00
Alexander Neumann
7ac4f0a525
Merge pull request #1134 from restic/gcs-support
...
Add backend for Google Cloud Storage (GCS)
2017-08-09 21:28:36 +02:00
Alexander Neumann
c4613c51d1
Add note about Go 1.8
2017-08-09 20:33:30 +02:00
Alexander Neumann
77bf17076b
Add entry to CHANGELOG
2017-08-09 20:23:29 +02:00
Alexander Neumann
8dd6beba15
gs: Add section to the manual
2017-08-09 20:22:07 +02:00
Alexander Neumann
a345386967
Add a section to the CHANGELOG
2017-08-09 20:15:08 +02:00
Alexander Neumann
bdd43bd430
Add a section to the manual
2017-08-09 20:13:34 +02:00
Alexander Neumann
1716501598
CI: Make sure the GCS backend tests run on Travis
2017-08-06 21:47:56 +02:00
Alexander Neumann
d9a5b9178e
gs: Rework path initialization
2017-08-06 21:47:56 +02:00
Alexander Neumann
8ca6a9a240
Vendor dependencies for GCS
2017-08-06 21:47:56 +02:00
Dipta Das
ba75a3884c
Add Google Cloud Storage as backend
...
Environment variables:
GOOGLE_PROJECT_ID=gcp-project-id
GOOGLE_APPLICATION_CREDENTIALS=path-to-json-file
Environment variables for test:
RESTIC_TEST_GS_PROJECT_ID=gcp-project-id
RESTIC_TEST_GS_APPLICATION_CREDENTIALS=path-to-json-file
RESTIC_TEST_GS_REPOSITORY=gs:us-central1/test-bucket
Init repository:
$ restic -r gs🪣 /[prefix] init
2017-08-06 21:47:55 +02:00
Alexander Neumann
d91d89eef6
azure: Create container if it does not exist
2017-08-06 21:47:04 +02:00
Alexander Neumann
a726c91116
azure: Rework path initialization
2017-08-06 21:47:04 +02:00
Alexander Neumann
d00fe95f10
Upgrade min Go version to 1.8
2017-08-06 21:47:04 +02:00
Alexander Neumann
072b7a014e
azure: User internal errors package
2017-08-06 21:47:04 +02:00
Alexander Neumann
618ce115d7
Azure: Use default HTTP transport
2017-08-06 21:47:04 +02:00