Commit Graph

165 Commits

Author SHA1 Message Date
Jarek Kowalski
cd012d8fbc code cleanup, logging 2016-08-22 21:58:04 -07:00
Jarek Kowalski
f70c69c9d9 several bugfixes, added tests for ObjectID UIString round-tripping 2016-08-22 21:03:06 -07:00
Jarek Kowalski
57f03fc43d added experimental bundles support 2016-08-22 06:25:27 -07:00
Jarek Kowalski
91bfa7cba3 API tweaks and godoc 2016-08-21 20:25:01 -07:00
Jarek Kowalski
b4758bdc79 godoc 2016-08-21 12:56:28 -07:00
Jarek Kowalski
bf4189c47e added section ObjectID example 2016-08-21 12:29:07 -07:00
Jarek Kowalski
16b6b2d8bd godoc updates, API cleanup 2016-08-21 12:26:49 -07:00
Jarek Kowalski
d0fbbbb12e bundle tweaks 2016-08-21 11:20:14 -07:00
Jarek Kowalski
28baa0bf19 entry JSON format tweaks 2016-08-21 10:38:39 -07:00
Jarek Kowalski
0c6ba27eaa doc and API cleanup 2016-08-21 09:28:52 -07:00
Jarek Kowalski
a3a54a4f78 godoc fixes 2016-08-21 09:01:03 -07:00
Jarek Kowalski
dcd7e0f76f godoc cleanup, hiding internal APIs 2016-08-21 08:28:40 -07:00
Jarek Kowalski
91d4346f67 replaced generated protobuf code with hand-written, switched back to JSON serialization, but preserving protobuf code structure.
The generated code leaked unclean concepts to public API.
2016-08-21 00:21:40 -07:00
Jarek Kowalski
498b151eff switch to golang 1.7 on travis 2016-08-20 17:24:28 -07:00
Jarek Kowalski
e528b32748 Major refactoring of data formats to use protobuf instead of JSON. This is a breaking change to data formats, but hoping to stabilize soon.
This change removes lots of pointless string and custom format parsing code and instead relies on protobuf to do the thing. JSON is still an option thanks to proto3-generated output.

- Refactored ObjectID to use protobuf
- Indirect blocks to use protobuf (in the form of seek table)
- Added generic proto stream reader and writer
- ObjectIDFormat became proto enum

Also:

- fixed major issue where indirect object ID entries were not encrypted, since they were storing block IDs and not object IDs.
- dropped support for majority of formats, only supporting HMAC-{SHA256,SHA512,SHA512_384} hashes with AES256.
This produces object IDs of 32 or 64 characters long.
- changed how pretty-printing works for 'kopia show'
2016-08-20 16:59:10 -07:00
Jarek Kowalski
9c828db309 added ObjectWriter.StorageBlocks() which returns the list of unique storage blocks that the object is based upon 2016-08-10 21:25:52 -07:00
Jarek Kowalski
fb051eca60 fixed go vet warning on 1.6 2016-08-09 21:02:57 -07:00
Jarek Kowalski
455874f7cc fixed build error 2016-08-09 20:57:02 -07:00
Jarek Kowalski
7455a99f9d added per-block locking to caching storage 2016-08-09 20:22:34 -07:00
Jarek Kowalski
714d3deb2d renamed logging filesystem files 2016-08-07 11:45:49 -07:00
Jarek Kowalski
75534251c9 renamed gcs filesystem files 2016-08-07 11:43:57 -07:00
Jarek Kowalski
d356aaac2e renamed storage filesystem files 2016-08-07 11:43:21 -07:00
Jarek Kowalski
e57c5d7f82 added initial version of caching wrapper (no cache expulsions yet), simplified Storage API 2016-08-06 18:49:53 -07:00
Jarek Kowalski
966d1c638b changed directory JSON format to be more self-explanatory 2016-08-05 20:15:55 -07:00
Jarek Kowalski
8af22b8503 Store raw, unescaped JSON whenever possible. 2016-08-05 07:09:56 -07:00
Jarek Kowalski
16e9420db8 added provisional, untested support for uploading bundles of files 2016-08-04 22:05:16 -07:00
Jarek Kowalski
f4517e7e4f added JSON autodetection to kopia show, removed redundant 'show -d' option, fixed directory listing output 2016-08-04 22:04:13 -07:00
Jarek Kowalski
e3dc066c58 Moved EntryMetadataReadCloser to entry.go 2016-08-03 20:55:28 -07:00
Jarek Kowalski
332b134a23 Added support for bundles in JSON representing directory.
The bundles share common parent object ID and objects in a bundle are mapped to sections of the same underlying object.
2016-08-03 19:36:22 -07:00
Jarek Kowalski
a3e3c27b94 removed unused parameter from readDirectoryMetadataEntries 2016-08-03 17:06:35 -07:00
Jarek Kowalski
cf4d30ae0d removed appveyor icon 2016-07-30 14:29:47 -07:00
Jarek Kowalski
2ce9359d87 tweaks 2016-07-30 14:10:00 -07:00
Jarek Kowalski
7eb2dfd4e3 dump build dependencies in travis 2016-07-30 14:00:49 -07:00
Jarek Kowalski
ad055b3b34 fixed sha256sum invocation 2016-07-30 13:06:23 -07:00
Jarek Kowalski
0e6723def8 added SHA256 checksum to release 2016-07-30 12:53:28 -07:00
Jarek Kowalski
56f4a2bf40 Added support for reading new ObjectID format - section, which can be used to create packed objects:
S{start},{length},{baseID}
2016-07-30 12:21:56 -07:00
Jarek Kowalski
a7be4bffc1 make .zip package for windows only, for others use .tar.gz 2016-07-29 22:21:02 -07:00
Jarek Kowalski
f075d4995e fixed build on linux 2016-07-29 15:43:47 -07:00
Jarek Kowalski
9a5184334d updated release binary names 2016-07-29 15:38:03 -07:00
Jarek Kowalski
73a1796968 added back golang tip 2016-07-29 15:14:46 -07:00
Jarek Kowalski
8d9bbc6cf9 changing travis to build all supported OS/arch configurations at once 2016-07-29 14:44:17 -07:00
Jarek Kowalski
9047fb6789 added github releases to travis 2016-07-29 07:30:58 -07:00
Jarek Kowalski
69519f9eff added github releases to travis 2016-07-29 07:23:31 -07:00
Jarek Kowalski
21bb83197b changed build info format 2016-07-28 22:34:29 -07:00
Jarek Kowalski
e863464d8f added appveyor build 2016-07-28 22:13:31 -07:00
Jarek Kowalski
7e47a634cb refactored fuse into separate package 2016-07-24 10:40:45 -07:00
Jarek Kowalski
c53bdfc1ee cleaned up code structure around listing repository 2016-07-24 10:40:45 -07:00
Jarek Kowalski
342eab2db8 Major refactoring of 'fs' package.
fs.Entry - represents filesystem entry
fs.Directory - is a directory entry
fs.Symlink - is a symlink entry
fs.File - is an entry representing a file

This simplifies a bunch of code. Still work in progress.
2016-07-24 10:40:44 -07:00
Jarek Kowalski
42e1dc577f changed password prompt logic and OAuth2 prompt on Windows 2016-07-16 18:13:47 -07:00
Jarek Kowalski
0be422f897 reorganized blob storage package - renamed to storage and put gcs/filesystem/logging into subpackages 2016-07-13 18:50:31 -07:00