Commit Graph

2148 Commits

Author SHA1 Message Date
Alexander Neumann bf30b2831b Merge pull request #878 from middelink/fix-825
Fix restoring files ownership as non-root user
2017-03-12 18:20:28 +01:00
Pauline Middelink 642cd3bebf Fix restoring files as non-root user
As we cannot reliably detect in advance if we can set ownership, permissions,
timestamps or ext attributes, execute ALL the requested changes before
returning the first error we found.

Report total errors at end of restore and stop printing entire stacktraces
where just the error message is sufficient.

Fixes #655
2017-03-12 16:51:58 +01:00
Alexander Neumann 057dd6c590 v0.5.0
-----BEGIN PGP SIGNATURE-----
 
 iQJJBAABCAAzFiEEz48Y8oRFdZc/edThkaaGi9P3qQcFAljD4MMVHGFsZXhhbmRl
 ckBidW1wZXJuLmRlAAoJEJGmhovT96kHt9kP/3lZIrmpBE78mLZ0vNwUI0ruC9s5
 ldiOzpQl+dN3kqU+A3c5F7lBssBCsvnZKgI4Ip1/5cGhVDTPIi6tnbko932Hhrfh
 mkxiJjQjlTQtlinRT/giRG1j4X+LW7BU2Q4cnuvG3f8Oumh9UlfuQELlK67XG8+1
 BnMPjkfFgKLI1nzxVnz+J34icAnwSnQD2PPKraqTH+pvWn8KbDxC9jZ+WoqwZdG4
 YURYKg4HE5ZluJB+l8R9x+GMuvTTHK7JhMj6IYWgdXBQtrgA34GoGbvQD/Vdfo3W
 Xkfsbvwrdzi2ndGe26qDxkMpx7Yt+beRw/dCTBvuPjdZ4hcwfoQLn+wRSQ5/QQ+d
 EnKFlu4LICI0bipSJnu1YZ1fokUZ8NYDdLVBRwWzMmwc72+tl5y8PywnmlUSli3z
 /XMIYK58zmSJgd7wFxwwH5pNEZimlTQWnzlD+u9dm9ToaPqW1iDlYzLUqw3LM7Bi
 3bz10VtIeQbH+leYyX4glCRrpQ3gmCxFMgI0cvhaXy/du+VcM0MdD/lzhSCPFT8E
 HePTGG/gT3udNCvfuFZ6agueEo21dAk4PzvM1CFHQreNMi4M4CERMdv+AeDmkgv8
 ALMUpy8dAajIuNHfHbeNWdVL9AAGPwm1o72oHp2+2UW2bXMffale0iYv8ARWaqtq
 OU6r0wXOrr8ZaHbd
 =jjG7
 -----END PGP SIGNATURE-----

Merge tag 'v0.5.0'

v0.5.0
2017-03-11 21:14:39 +01:00
Alexander Neumann 0bd7db9efe Add VERSION file for 0.5.0 2017-03-11 12:36:35 +01:00
Alexander Neumann f678c97346 Add VERSION file for 0.5.0 2017-03-11 12:34:27 +01:00
Alexander Neumann 887e81188f Merge pull request #877 from middelink/fix-875
Fix crash at restoring pre-existing hardlinked files
2017-03-11 10:13:43 +01:00
Alexander Neumann 8d0140aabe Merge pull request #876 from middelink/fix-836
Restore does not truncate files it restores
2017-03-11 10:12:53 +01:00
Alexander Neumann 2a8f275a28 Manual: Document `TMPDIR` env variable
Closes #873
2017-03-11 10:02:33 +01:00
Alexander Neumann 55c3150946 Manual: Fix section about JSON 2017-03-11 09:59:36 +01:00
Pauline Middelink b56e16acd0 Fix crash at restoring pre-existing hardlinked files
Remove target file, ignore non existing file errors.

Small memory saving: Only keep inodes around for files with a link count > 1.
(We will/can never be asked to restore a hardlinked file with one of the
files having a link count of 1.)

Closes #836
2017-03-11 00:06:58 +01:00
Pauline Middelink b75186533d Restore does not truncate files it restores
Missing O_TRUNC when doing O_CREAT.

Closes #875
2017-03-10 22:46:13 +01:00
Alexander Neumann 8958efba60 Merge pull request #871 from middelink/fix-869
Refactor output of `find` to allow for json and normal output.
2017-03-10 20:03:26 +01:00
Pauline Middelink a9707a5728 Refactor output of `find` to allow for json and normal output.
Rather complicated solution becaused I wanted to retain the streaming
character of the output, which means for json I have to manually add
headers and footers per snapshot scanned + a list around the whole
set.

As the json ouput is now partly handcrafted, add proper testing to catch
unintentional changes to the output, making it non-json compliant.

Closes #869
2017-03-10 16:23:58 +01:00
Alexander Neumann 7635feb591 Add cross-compilation to README and Manual 2017-03-09 21:24:38 +01:00
Alexander Neumann 087c2917aa Check version in build.go
Print a sensible error for Go < 1.7 (the "context" package is missing
there)
2017-03-09 21:24:30 +01:00
Alexander Neumann deddedd88f Merge pull request #872 from middelink/fix-787
Suppress (non error) output of `forget` during -q
2017-03-09 21:23:36 +01:00
Pauline Middelink b38294f236 Suppress (non error) output of `forget` during -q
Closes #787
2017-03-09 20:20:17 +01:00
Alexander Neumann fdb9872cef Add cross-compilation to README and Manual 2017-03-09 11:37:44 +01:00
Alexander Neumann f8dd5d5088 Check version in build.go
Print a sensible error for Go < 1.7 (the "context" package is missing
there)
2017-03-09 11:29:24 +01:00
Alexander Neumann 9e0207e534 Add CHANGELOG.md and instructions for contributors 2017-03-09 10:40:24 +01:00
Alexander Neumann 9eae789cd2 Add VERSION file for 0.5.0-rc.1 2017-03-09 10:28:33 +01:00
Alexander Neumann d6104935d7 Add VERSION file for 0.5.0rc1 2017-03-09 10:20:11 +01:00
Alexander Neumann 406af5916c Also include the source in SHA256SUMS 2017-03-09 10:19:45 +01:00
Alexander Neumann 93e4e4f4fb Merge pull request #866 from middelink/widespread-tags
Add --tag filtering to every command, where applicable
2017-03-09 09:55:26 +01:00
Pauline Middelink 8a05de537f Refactor `prune` and `rebuild_index`
Factor out and reuse `rebuildIndex()` in cmd_rebuild_index and cmd_prune.

Use contexts.
2017-03-08 20:30:52 +01:00
Pauline Middelink 8a92687d9a Refactor `find` and `ls` commands
Implement filtering by using `FindFilteredSnapshots()` to iterate over the snapshots

Refactor cmd_ls' `PrintNode()` into format.go, reuse its pretty printing in both `find`
and `ls` commands.

Use contexts.
2017-03-08 20:29:31 +01:00
Pauline Middelink 3432e7edcd Refactor `tag` to use `FindFilteredSnapshots()` 2017-03-08 20:28:44 +01:00
Pauline Middelink 3c6c17abcd Refactor `forget` and `snapshots` command
Implement filtering by using `FindFilteredSnapshots()` to iterate over the snapshots

Refactor cmd_snapshots' `PrintSnapshots()` so its pretty printing can be used from
both `forget` and `snapshots`.

Use contexts.
2017-03-08 20:24:58 +01:00
Pauline Middelink 11d237c252 New helper function `FindFilteredSnapshots` to iterate over snapshots
This helper function takes a set of filters and/or a list of snapshots
from the commandline. It returns a channel of *Snapshot.

When snapshot ids are given, they are checked for validity and their
corresponding Snapshots returned. The snapshot id "latest" is handled
special to return either the last snapshot (no filters) or the last
snapshot matching the filters.

When no arguments are given, the filters are applied over all available
snapshots and these are returned.
2017-03-08 20:19:12 +01:00
Pauline Middelink 0f7b6ec5ac Adapt `key` command to context world. 2017-03-08 20:17:30 +01:00
Pauline Middelink b4526c4e6e Enable the use of `context` in restic
Set up a cancelble context in global options, hook it into the ctrl-C handler
for proper cancel propegation.

Bump up minimal requirement for Go to version 1.7 in documentation
and test-build files.
2017-03-08 20:12:16 +01:00
Pauline Middelink 3eaaa0f286 Correct some typo's in comments. 2017-03-08 20:09:24 +01:00
Pauline Middelink b1c8071163 Add filtering to `mount` command 2017-03-08 19:59:19 +01:00
Pauline Middelink 3468108d4c Implement --tag processing to `backup` and `restore` command
Add `tags` argument to `FindLatestSnapshot()`
2017-03-08 19:55:58 +01:00
Alexander Neumann 33c8dd4ee5 Merge pull request #867 from middelink/optimize
Optimize List() pipeline
2017-03-08 11:50:47 +01:00
Alexander Neumann 5e2c4caa32 Merge pull request #861 from middelink/fix-841
Refactor cmd_forget
2017-03-08 09:56:01 +01:00
Pauline Middelink 7c989ca487 Optimize List() pipeline 2017-03-07 20:58:36 +01:00
Pauline Middelink e9a2982ecd Add `--path` for snapshot filtering by path.
Add `--group-by-tags` for grouping on host,tags,dirs instead of host,dirs.

Borrow the snapshot printing from cmd_snapshot.

Closes #841
2017-03-07 19:28:42 +01:00
Alexander Neumann f5a55a81f7 Merge pull request #865 from restic/handle-empty-snapshots
Refuse to create empty snapshots
2017-03-07 11:21:48 +01:00
Alexander Neumann 340f2c80a0 Merge pull request #864 from restic/find-case-insensitive
find: Add option to ignore case
2017-03-07 11:20:33 +01:00
Alexander Neumann bb144436c7 Add test for empty snapshot 2017-03-07 11:17:15 +01:00
Alexander Neumann b50d3ba805 Refuse to create empty snapshots
Closes #862
2017-03-07 11:12:34 +01:00
Alexander Neumann 00e7158381 Merge pull request #860 from middelink/factor-out
Create a helper function to get the terminal width
2017-03-07 10:59:39 +01:00
Alexander Neumann 221bef48c0 find: Add option to ignore case
Closes #859
2017-03-07 10:58:09 +01:00
Pauline Middelink afcc1ba706 Create a helper function to get the terminal width
Rationale: contain terminal access to one file.
2017-03-06 11:23:00 +01:00
Alexander Neumann bf88a62a16 Merge pull request #858 from middelink/snapshot-layout
Fix layout issue in cmd_snapshot "ascii art"
2017-03-06 09:10:35 +01:00
Alexander Neumann cc140744d6 Merge pull request #857 from middelink/fix-856
Fix SamePaths() and make it into a receiver function
2017-03-06 09:10:33 +01:00
Pauline Middelink 354e8ffb82 Fix layout issue in cmd_snapshot "ascii art"
The layouter does not account for multi tags when determining the
need for ascii art.

36fd8178  2017-03-03 21:35:04  abuseio.polyware.nl    NL          /
                                                      A       └──

vs

36fd8178  2017-03-03 21:35:04  abuseio.polyware.nl    NL      ┌── /
                                                      A       └──
2017-03-06 02:49:15 +01:00
Pauline Middelink e1c828be3e Fix SamePaths() and make it into a receiver function
Add `HasPath(paths []string) bool` to Snapshot for testing if the
snapshot has at least the paths given to the function.

Reimplemented SamePaths(paths []string) so it does what the name implies,
compare if all given paths are in the snapshot.
2017-03-06 02:21:58 +01:00
Alexander Neumann d50dc9f649 Merge pull request #855 from middelink/fix-851
Add `tag` command to restic cli to manipulate tags on existing snapshots.
2017-03-05 20:20:20 +01:00