Julio López
3924fb247a
Minor cleanup for snapshot time override ( #392 )
...
* Simplify cli.parseTimestamp
* nit: move duration var closer to where it is used
2020-03-27 00:19:16 -07:00
Jarek Kowalski
6cb9b8fa4f
repo: refactored public API ( #318 )
...
* This is 99% mechanical:
Extracted repo.Repository interface that only exposes high-level object and manifest management methods, but not blob nor content management.
Renamed old *repo.Repository to *repo.DirectRepository
Reviewed codebase to only depend on repo.Repository as much as possible, but added way for low-level CLI commands to use DirectRepository.
* PR fixes
2020-03-26 08:04:01 -07:00
Jarek Kowalski
9b68a631e6
Highlight snapshot errors in the UI and CLI ( #376 )
...
* upload: exposed numFailed and failedEntries on directory summary
* cli: better present snapshot errors
* htmlui: display snapshot errors
2020-03-22 14:18:47 -07:00
Seb Patane
6789f8e64c
cli: allow override of snapshot start time and end time
2020-03-21 09:27:32 -07:00
Julio López
edc87fcce8
Refactor content stats ( #340 )
...
* Remove unused fields from content.Stats
* Refactor content.Stats
2020-03-11 21:47:05 -07:00
Jarek Kowalski
765bff8e0b
cli: restored snapshot create --hostname and --username flags
2020-02-25 20:40:23 -08:00
Jarek Kowalski
e3854f7773
BREAKING: changed how hostname/username are handled
...
The hostname/username are now persisted when connecting to repository
in a local config file.
This prevents weird behavior changes when hostname is suddenly changed,
such as when moving between networks.
repo.Repository will now expose Hostname/Username properties which
are always guarnateed to be set, and are used throughout.
Removed --hostname/--username overrides when taking snapshot et.al.
2020-02-25 20:40:23 -08:00
Jarek Kowalski
c8fcae93aa
logging: refactored logging
...
This is mostly mechanical and changes how loggers are instantiated.
Logger is now associated with a context, passed around all methods,
(most methods had ctx, but had to add it in a few missing places).
By default Kopia does not produce any logs, but it can be overridden,
either locally for a nested context, by calling
ctx = logging.WithLogger(ctx, newLoggerFunc)
To override logs globally, call logging.SetDefaultLogger(newLoggerFunc)
This refactoring allowed removing dependency from Kopia repo
and go-logging library (the CLI still uses it, though).
It is now also possible to have all test methods emit logs using
t.Logf() so that they show up in failure reports, which should make
debugging of test failures suck less.
2020-02-25 17:24:44 -08:00
Jarek Kowalski
4736e9037e
revamped progress output and cleaned up logging
...
See https://asciinema.org/a/ykx6uzEhKY3451fWEnX9nm9uo
2020-02-10 19:08:35 -08:00
Jarek Kowalski
ac70a38101
lint: upgraded to 1.22.2 and make lint issues a build failure
...
fixed or silenced linter warnings, mostly due to magic numeric constants
2020-01-03 16:39:30 -08:00
Julio Lopez
194680adfc
Refactor: relocate user/host helpers to userhost.go
2019-12-18 23:11:38 -08:00
Jarek Kowalski
f6d59608ab
upload: require *policy.Tree for each upload
2019-12-07 14:24:57 -08:00
Jarek Kowalski
b68ef7d781
refactored policy types and policy.Getter
2019-12-06 23:53:22 -08:00
Jarek Kowalski
6217df1a87
lint: switched to 1.21 and fixed a ton of whitespace issues discovered
...
by new wsl linter
2019-11-26 06:49:49 -08:00
Pavan Navarathna
829742599c
[ #124 ] Add optional flags to override hostname and username
2019-11-22 15:15:21 +09:00
Jarek Kowalski
6ef696d97a
cli: resolve symlinks for snapshot roots
...
also - error handling improvements in the CLI
2019-07-18 08:40:44 -10:00
Jarek Kowalski
0d89ae3f79
Changed upload allow specifying N previous manifests
...
This avoids re-hashing of files previously partially uploaded
no matter where the upload was interrupted.
2019-06-08 18:01:47 -07:00
Jarek Kowalski
ae1510b65c
Deprecate hashcache and replace it with simply walking previous snapshot directory tree.
...
This cleans up the code a lot and removes many ugly hacks.
The performance is pretty reasonable and with separate metadata cache it's likely to stay that way.
2019-06-08 18:01:47 -07:00
Jarek Kowalski
54edb97b3a
refactoring: renamed repo/block to repo/content
...
Also introduced strongly typed content.ID and manifest.ID (instead of string)
This aligns identifiers across all layers of repository:
blob.ID
content.ID
object.ID
manifest.ID
2019-06-01 22:24:19 -07:00
Jarek Kowalski
1a7a02ddbe
cleanup imports by grouping all local imports together
2019-06-01 10:57:55 -07:00
Jarek Kowalski
63303904e1
switched remaining fmt.Errorf to errors.Wrap()
2019-06-01 10:57:05 -07:00
Jarek Kowalski
0c41d41276
Fixed up paths after merge
2019-05-27 15:48:39 -07:00
Jarek Kowalski
a6a153b22e
switched fmt.Errorf() to errors.Wrap()
2019-05-11 12:34:14 -07:00
Jarek Kowalski
913f3392e3
cli: renamed 'repo migration' to 'snapshot migrate' and improved caching
2019-01-19 10:52:03 -08:00
Jarek Kowalski
bb4c6674c7
snapshotfs: merged internal.Upload into snapshotfs
2018-11-03 08:39:07 -07:00
Jarek Kowalski
327d8317d8
refactored repo/ into separate github.com/kopia/repo/ git repository
2018-10-26 20:40:57 -07:00
Jarek Kowalski
d47f662316
refactoring: moved kopia/kopia/policy to kopia/kopia/snapshot/policy
2018-10-20 09:55:52 -07:00
Jarek Kowalski
4270d8a67f
policy: refactored retention policy to be applied in policy.ApplyRetentionPolicy()
2018-09-16 12:48:07 -07:00
Jarek Kowalski
d8398c4a58
cli: added auto-expiration of snapshots at the end of an upload
2018-09-15 22:17:39 -07:00
Jarek Kowalski
08d62d60f1
revamped progress bar by including hashing and uploading part separately
2018-09-14 11:56:48 -07:00
Jarek Kowalski
906b8eaee3
plumbed through context to all manifest manager methods and switched to lazy initialization
2018-09-13 15:34:29 -07:00
Jarek Kowalski
91066f2469
reorganized low-level repository packages by moving them all under kopia/kopia/repo/
2018-08-30 22:01:05 -07:00
Jarek Kowalski
6484a55d7c
removed policy.Manager and snapshot.Manager and switched to package-level function interface instead
2018-08-30 06:47:58 -07:00
Jarek Kowalski
a44c9554c0
refactored upload to separate package
2018-08-30 06:21:40 -07:00
Jarek Kowalski
3ef4593b03
refactored policy management into separate policy/ package
2018-08-29 23:08:40 -07:00
Jarek Kowalski
1ff003c820
added internal lib for gitignore-style pattern matching
...
added 'ignorefs' which transparently hides all files according to .kopiaignore, which is very similar to .gitignore
2018-08-19 11:48:55 -10:00
Jarek Kowalski
c57531b751
switched Go logging library to github.com/op/go-logging which lets us override log levels per module
2018-07-09 21:28:12 -07:00
Jarek Kowalski
83036f1a0d
upload progress
2018-06-23 13:10:54 -07:00
Jarek Kowalski
4faf3cd9d0
finalized CLI to manipulate policies
2018-06-16 12:17:58 -07:00
Jarek Kowalski
e36d02c59b
emit per-dir incomplete reason
...
store entire rootEntry on snapshot nmanifest
format 'snapshot list' consistently for both root and nested items
2018-05-19 22:00:14 -07:00
Jarek Kowalski
c907580aaf
when running 'snapshot create --all' ignore individual source error failures
2018-05-15 20:54:45 -07:00
Jarek Kowalski
d8201229d8
plumbed through ctx in storage.Storage APIs and all uses
2018-04-03 17:39:54 -07:00
Jarek Kowalski
2e61cc5688
code simplification, enabled gocyclo linter
2018-03-19 14:08:19 -07:00
Jarek Kowalski
453bab3560
fixed some lint errors, mostly dead code and missing error checks
2018-03-19 12:26:28 -07:00
Jarek Kowalski
47b1e09ba9
added default CLI commands
2018-03-15 09:39:39 -07:00
Jarek Kowalski
70ed5647e4
added parallel uploading support
2018-03-14 18:22:50 -07:00
Jarek Kowalski
a50546de0e
fixed previous manifest selection for incremental snapshots
2018-03-12 16:50:01 -07:00
Jarek Kowalski
92330ac247
refactored policy manager to use SourceInfo
2018-02-19 13:20:32 -08:00
Jarek Kowalski
16e44cb37f
renamed policy.Manager as snapshot.PolicyManager and policy.Policy as snapshot.Policy
2018-02-19 10:59:15 -08:00
Jarek Kowalski
10ca234633
switched to using zerolog for logging, by default log level=info, can be set to debug on commandline
2018-01-01 19:12:35 -08:00