From d9c1bd0758321eabf501dee50d62034d566f4a68 Mon Sep 17 00:00:00 2001 From: cristihcd <5652964+cristihcd@users.noreply.github.com> Date: Wed, 29 Sep 2021 01:19:02 +0300 Subject: [PATCH] minor spelling and grammar fixes (#1318) --- cli/cli_progress.go | 2 +- cli/command_benchmark_splitters.go | 2 +- cli/command_index_inspect.go | 2 +- cli/command_logs_session.go | 2 +- cli/command_logs_show.go | 2 +- cli/command_policy_set_actions.go | 2 +- cli/command_policy_set_files.go | 2 +- cli/command_repository_set_parameters.go | 2 +- cli/command_repository_sync.go | 2 +- cli/command_show.go | 2 +- cli/command_snapshot_list.go | 2 +- cli/storage_providers.go | 2 +- cli/update_check.go | 8 ++++---- repo/content/content_manager_lock_free.go | 2 +- repo/content/content_manager_test.go | 2 +- site/content/_index.html | 4 ++-- site/content/docs/Advanced/Actions/_index.md | 12 ++++++------ site/content/docs/Advanced/Architecture/_index.md | 2 +- site/content/docs/Advanced/Caching/_index.md | 4 ++-- site/content/docs/Advanced/Compatibility/_index.md | 2 +- site/content/docs/Advanced/Logging/_index.md | 2 +- site/content/docs/Advanced/Maintenance/_index.md | 2 +- .../docs/Advanced/Synchronization/_index.md | 4 ++-- site/content/docs/Features/_index.md | 6 +++--- site/content/docs/Getting started/_index.md | 4 ++-- site/content/docs/Installation/_index.md | 14 +++++++------- site/content/docs/Reference/Command-Line/_index.md | 2 +- site/content/docs/Repositories/_index.md | 4 ++-- site/content/docs/Repository Server/_index.md | 6 +++--- site/content/docs/Upgrade/_index.md | 2 +- 30 files changed, 53 insertions(+), 53 deletions(-) diff --git a/cli/cli_progress.go b/cli/cli_progress.go index 19569254c..fcd918ac5 100644 --- a/cli/cli_progress.go +++ b/cli/cli_progress.go @@ -27,7 +27,7 @@ type progressFlags struct { func (p *progressFlags) setup(svc appServices, app *kingpin.Application) { app.Flag("progress", "Enable progress bar").Hidden().Default("true").BoolVar(&p.enableProgress) - app.Flag("progress-update-interval", "How ofter to update progress information").Hidden().Default("300ms").DurationVar(&p.progressUpdateInterval) + app.Flag("progress-update-interval", "How often to update progress information").Hidden().Default("300ms").DurationVar(&p.progressUpdateInterval) p.out.setup(svc) } diff --git a/cli/command_benchmark_splitters.go b/cli/command_benchmark_splitters.go index 4e51c311b..d564c8b05 100644 --- a/cli/command_benchmark_splitters.go +++ b/cli/command_benchmark_splitters.go @@ -30,7 +30,7 @@ func (c *commandBenchmarkSplitters) setup(svc appServices, parent commandParent) cmd.Flag("rand-seed", "Random seed").Default("42").Int64Var(&c.randSeed) cmd.Flag("data-size", "Size of a data to split").Default("32MB").BytesVar(&c.blockSize) cmd.Flag("block-count", "Number of data blocks to split").Default("16").IntVar(&c.blockCount) - cmd.Flag("print-options", "Print out fastest dynamic splitter option").BoolVar(&c.printOption) + cmd.Flag("print-options", "Print out the fastest dynamic splitter option").BoolVar(&c.printOption) cmd.Action(svc.noRepositoryAction(c.run)) diff --git a/cli/command_index_inspect.go b/cli/command_index_inspect.go index 7248d0818..7b79b3b85 100644 --- a/cli/command_index_inspect.go +++ b/cli/command_index_inspect.go @@ -22,7 +22,7 @@ type commandIndexInspect struct { } func (c *commandIndexInspect) setup(svc appServices, parent commandParent) { - cmd := parent.Command("inspect", "Inpect index blob") + cmd := parent.Command("inspect", "Inspect index blob") cmd.Flag("all", "Inspect all index blobs in the repository, including inactive").BoolVar(&c.all) cmd.Flag("active", "Inspect all active index blobs").BoolVar(&c.active) cmd.Flag("content-id", "Inspect all active index blobs").StringsVar(&c.contentIDs) diff --git a/cli/command_logs_session.go b/cli/command_logs_session.go index 9667f782a..e70e1c733 100644 --- a/cli/command_logs_session.go +++ b/cli/command_logs_session.go @@ -33,7 +33,7 @@ type logSelectionCriteria struct { func (c *logSelectionCriteria) setup(cmd *kingpin.CmdClause) { cmd.Flag("all", "Show all logs").BoolVar(&c.all) cmd.Flag("latest", "Include last N logs").Short('n').IntVar(&c.latest) - cmd.Flag("younger-than", "Include logs yonger than X (e.g. '1h')").DurationVar(&c.youngerThan) + cmd.Flag("younger-than", "Include logs younger than X (e.g. '1h')").DurationVar(&c.youngerThan) cmd.Flag("older-than", "Include logs older than X (e.g. '1h')").DurationVar(&c.olderThan) } diff --git a/cli/command_logs_show.go b/cli/command_logs_show.go index c890868a2..e2678a338 100644 --- a/cli/command_logs_show.go +++ b/cli/command_logs_show.go @@ -54,7 +54,7 @@ func (c *commandLogsShow) run(ctx context.Context, rep repo.DirectRepository) er // by default show latest one if !c.crit.any() { sessions = sessions[len(sessions)-1:] - log(ctx).Infof("Showing latest log (%v)", formatTimestamp(sessions[0].startTime)) + log(ctx).Infof("Showing the latest log (%v)", formatTimestamp(sessions[0].startTime)) } var data gather.WriteBuffer diff --git a/cli/command_policy_set_actions.go b/cli/command_policy_set_actions.go index 9f6f9b008..6284c37ba 100644 --- a/cli/command_policy_set_actions.go +++ b/cli/command_policy_set_actions.go @@ -31,7 +31,7 @@ func (c *policyActionFlags) setup(cmd *kingpin.CmdClause) { cmd.Flag("after-folder-action", "Path to after-folder action command ('none' to remove)").Default("-").PlaceHolder("COMMAND").StringVar(&c.policySetAfterFolderActionCommand) cmd.Flag("before-snapshot-root-action", "Path to before-snapshot-root action command ('none' to remove or 'inherit')").Default("-").PlaceHolder("COMMAND").StringVar(&c.policySetBeforeSnapshotRootActionCommand) cmd.Flag("after-snapshot-root-action", "Path to after-snapshot-root action command ('none' to remove or 'inherit')").Default("-").PlaceHolder("COMMAND").StringVar(&c.policySetAfterSnapshotRootActionCommand) - cmd.Flag("action-command-timeout", "Max time allowed for a action to run in seconds").Default("5m").DurationVar(&c.policySetActionCommandTimeout) + cmd.Flag("action-command-timeout", "Max time allowed for an action to run in seconds").Default("5m").DurationVar(&c.policySetActionCommandTimeout) cmd.Flag("action-command-mode", "Action command mode").Default("essential").EnumVar(&c.policySetActionCommandMode, "essential", "optional", "async") cmd.Flag("persist-action-script", "Persist action script").BoolVar(&c.policySetPersistActionScript) } diff --git a/cli/command_policy_set_files.go b/cli/command_policy_set_files.go index 8c9946e3d..df8ecc63c 100644 --- a/cli/command_policy_set_files.go +++ b/cli/command_policy_set_files.go @@ -39,7 +39,7 @@ func (c *policyFilesFlags) setup(cmd *kingpin.CmdClause) { cmd.Flag("clear-dot-ignore", "Clear list of paths in the dot-ignore list").BoolVar(&c.policySetClearDotIgnore) cmd.Flag("max-file-size", "Exclude files above given size").PlaceHolder("N").StringVar(&c.policySetMaxFileSize) - // Ignore other mounted fileystems. + // Ignore other mounted filesystems. cmd.Flag("one-file-system", "Stay in parent filesystem when finding files ('true', 'false', 'inherit')").EnumVar(&c.policyOneFileSystem, booleanEnumValues...) cmd.Flag("ignore-cache-dirs", "Ignore cache directories ('true', 'false', 'inherit')").EnumVar(&c.policyIgnoreCacheDirs, booleanEnumValues...) diff --git a/cli/command_repository_set_parameters.go b/cli/command_repository_set_parameters.go index 6fcf0aea3..2e7b35346 100644 --- a/cli/command_repository_set_parameters.go +++ b/cli/command_repository_set_parameters.go @@ -35,7 +35,7 @@ func (c *commandRepositorySetParameters) setup(svc appServices, parent commandPa cmd.Flag("max-pack-size-mb", "Set max pack file size").PlaceHolder("MB").IntVar(&c.maxPackSizeMB) cmd.Flag("index-version", "Set version of index format used for writing").IntVar(&c.indexFormatVersion) - cmd.Flag("upgrade", "Uprade repository to the latest stable format").BoolVar(&c.upgradeRepositoryFormat) + cmd.Flag("upgrade", "Upgrade repository to the latest stable format").BoolVar(&c.upgradeRepositoryFormat) cmd.Flag("epoch-refresh-frequency", "Epoch refresh frequency").DurationVar(&c.epochRefreshFrequency) cmd.Flag("epoch-min-duration", "Minimal duration of a single epoch").DurationVar(&c.epochMinDuration) diff --git a/cli/command_repository_sync.go b/cli/command_repository_sync.go index 58569d6f2..8cf3138c9 100644 --- a/cli/command_repository_sync.go +++ b/cli/command_repository_sync.go @@ -38,7 +38,7 @@ type commandRepositorySyncTo struct { } func (c *commandRepositorySyncTo) setup(svc advancedAppServices, parent commandParent) { - cmd := parent.Command("sync-to", "Synchronizes contents of this repository to another location") + cmd := parent.Command("sync-to", "Synchronizes the contents of this repository to another location") cmd.Flag("update", "Whether to update blobs present in destination and source if the source is newer.").Default("true").BoolVar(&c.repositorySyncUpdate) cmd.Flag("delete", "Whether to delete blobs present in destination but not source.").BoolVar(&c.repositorySyncDelete) cmd.Flag("dry-run", "Do not perform copying.").Short('n').BoolVar(&c.repositorySyncDryRun) diff --git a/cli/command_show.go b/cli/command_show.go index e68b49f88..32a0be159 100644 --- a/cli/command_show.go +++ b/cli/command_show.go @@ -17,7 +17,7 @@ type commandShow struct { } func (c *commandShow) setup(svc appServices, parent commandParent) { - cmd := parent.Command("show", "Displays contents of a repository object.").Alias("cat") + cmd := parent.Command("show", "Displays the contents of a repository object.").Alias("cat") cmd.Arg("object-path", "Path").Required().StringVar(&c.path) cmd.Action(svc.repositoryReaderAction(c.run)) diff --git a/cli/command_snapshot_list.go b/cli/command_snapshot_list.go index 6d786078d..cbdc41bca 100644 --- a/cli/command_snapshot_list.go +++ b/cli/command_snapshot_list.go @@ -49,7 +49,7 @@ func (c *commandSnapshotList) setup(svc appServices, parent commandParent) { cmd.Flag("mtime", "Include file mod time").BoolVar(&c.snapshotListShowModTime) cmd.Flag("owner", "Include owner").BoolVar(&c.shapshotListShowOwner) cmd.Flag("show-identical", "Show identical snapshots").Short('l').BoolVar(&c.snapshotListShowIdentical) - cmd.Flag("all", "Show all shapshots (not just current username/host)").Short('a').BoolVar(&c.snapshotListShowAll) + cmd.Flag("all", "Show all snapshots (not just current username/host)").Short('a').BoolVar(&c.snapshotListShowAll) cmd.Flag("max-results", "Maximum number of entries per source.").Short('n').IntVar(&c.maxResultsPerPath) cmd.Flag("tags", "Tag filters to apply on the list items. Must be provided in the : format.").StringsVar(&c.snapshotListTags) c.jo.setup(svc, cmd) diff --git a/cli/storage_providers.go b/cli/storage_providers.go index d1faf2ecd..cfcf458db 100644 --- a/cli/storage_providers.go +++ b/cli/storage_providers.go @@ -30,7 +30,7 @@ type storageProvider struct { {"b2", "a B2 bucket", func() storageFlags { return &storageB2Flags{} }}, {"filesystem", "a filesystem", func() storageFlags { return &storageFilesystemFlags{} }}, {"gcs", "a Google Cloud Storage bucket", func() storageFlags { return &storageGCSFlags{} }}, - {"rclone", "an rclone-based provided", func() storageFlags { return &storageRcloneFlags{} }}, + {"rclone", "a rclone-based provided", func() storageFlags { return &storageRcloneFlags{} }}, {"s3", "an S3 bucket", func() storageFlags { return &storageS3Flags{} }}, {"sftp", "an SFTP storage", func() storageFlags { return &storageSFTPFlags{} }}, {"webdav", "a WebDAV storage", func() storageFlags { return &storageWebDAVFlags{} }}, diff --git a/cli/update_check.go b/cli/update_check.go index ddb1ce725..1b84aa1d9 100644 --- a/cli/update_check.go +++ b/cli/update_check.go @@ -128,7 +128,7 @@ func getLatestReleaseNameFromGitHub(ctx context.Context) (string, error) { } if err := json.NewDecoder(resp.Body).Decode(&responseObject); err != nil { - return "", errors.Wrap(err, "invalid Github API response") + return "", errors.Wrap(err, "invalid GitHub API response") } return responseObject.Name, nil @@ -172,7 +172,7 @@ func (c *App) maybeCheckForUpdates(ctx context.Context) (string, error) { } if err := c.maybeCheckGithub(ctx, us); err != nil { - return "", errors.Wrap(err, "error checking github") + return "", errors.Wrap(err, "error checking GitHub") } log(ctx).Debugf("build version %v, available %v", ensureVPrefix(repo.BuildVersion), ensureVPrefix(us.AvailableVersion)) @@ -211,10 +211,10 @@ func (c *App) maybeCheckGithub(ctx context.Context, us *updateState) error { newAvailableVersion, err := getLatestReleaseNameFromGitHub(ctx) if err != nil { - return errors.Wrap(err, "update to get latest release from GitHub") + return errors.Wrap(err, "update to get the latest release from GitHub") } - log(ctx).Debugf("latest version on github: %v previous %v", newAvailableVersion, us.AvailableVersion) + log(ctx).Debugf("latest version on GitHub: %v previous %v", newAvailableVersion, us.AvailableVersion) // we got updated version from GitHub, write it in a state file again if newAvailableVersion != us.AvailableVersion { diff --git a/repo/content/content_manager_lock_free.go b/repo/content/content_manager_lock_free.go index 0226e7cbf..b675da627 100644 --- a/repo/content/content_manager_lock_free.go +++ b/repo/content/content_manager_lock_free.go @@ -85,7 +85,7 @@ func ValidatePrefix(prefix ID) error { } } - return errors.Errorf("invalid prefix, must be a empty or single letter between 'g' and 'z'") + return errors.Errorf("invalid prefix, must be empty or a single letter between 'g' and 'z'") } func (bm *WriteManager) getContentDataReadLocked(ctx context.Context, pp *pendingPackInfo, bi Info, output *gather.WriteBuffer) error { diff --git a/repo/content/content_manager_test.go b/repo/content/content_manager_test.go index 8e726d030..1f62e2635 100644 --- a/repo/content/content_manager_test.go +++ b/repo/content/content_manager_test.go @@ -2158,7 +2158,7 @@ func verifyDeletedContentRead(ctx context.Context, t *testing.T, bm *WriteManage } if !ci.GetDeleted() { - t.Errorf("Expected content to be deleted but it is not: %#v", ci) + t.Errorf("Expected content to be deleted, but it is not: %#v", ci) } } diff --git a/site/content/_index.html b/site/content/_index.html index 58941a9ad..48c2b435e 100644 --- a/site/content/_index.html +++ b/site/content/_index.html @@ -18,7 +18,7 @@ linkTitle = "Kopia" User Support Forum - Developer Discusson + Developer Discussion

Encrypted, Deduplicated, and Compressed Data Backups Using Your Own Cloud Storage

@@ -39,7 +39,7 @@ View a recorded demo of Kopia using Google Cloud Storage with pluggable encrypti

KopiaUI

-

Kopia comes with a user friendly desktop app for Windows, macOS and Linux which allows you to create snapshots, define policies and restore files quickly.

+

Kopia comes with a user-friendly desktop app for Windows, macOS and Linux which allows you to create snapshots, define policies and restore files quickly.

diff --git a/site/content/docs/Advanced/Actions/_index.md b/site/content/docs/Advanced/Actions/_index.md index 4705fed8d..54facb7ed 100644 --- a/site/content/docs/Advanced/Actions/_index.md +++ b/site/content/docs/Advanced/Actions/_index.md @@ -36,13 +36,13 @@ $ kopia policy set /some/dir --before-snapshot-root-action /path/to/command $ kopia policy set /some/dir --after-snapshot-root-action /path/to/command ``` ->NOTE: Unlike all other policy options, `--before-folder-action` and `--after-folder-action` are not inherited and must be set explicitly on target folders, while `--before-snapshot-root-action` and `--after-snapshot-root-action` are interited from their parents and can be set at global, host, user or directory level. +>NOTE: Unlike all other policy options, `--before-folder-action` and `--after-folder-action` are not inherited and must be set explicitly on target folders, while `--before-snapshot-root-action` and `--after-snapshot-root-action` are inherited from their parents and can be set at global, host, user or directory level. Actions can be `essential` (must succeed, default behavior), `optional` (failures are tolerated) or `async` (kopia will start the action but not wait for it to finish). This can be set using `--action-command-mode`, for example: ``` -$ kopia policy set /some/dir --mode=async \ +$ kopia policy set /some/dir --action-command-mode=async \ --before-folder-action /usr/local/bin/notifier.sh ``` @@ -55,10 +55,10 @@ $ kopia policy set /some/dir --action-command-timeout=180s \ Finally, the action command itself can be stored in a repository, when `--persist-action-script` is passed. To prevent binaries from being stored, the maximum script length can be up to 32000 characters. -Scripts stored like this will be temporarily extracted to a local directory and executed using shell command, which is: +Scripts stored like this will be temporarily extracted to a local directory and executed using a shell command, which is: -* On Linux and macOS: `sh -e /path/to/temporary/script/file.sh" -* On Windows: "cmd.exe /c C:\path\to\temporary\script\file.cmd" +* On Linux and macOS: `sh -e /path/to/temporary/script/file.sh` +* On Windows: `cmd.exe /c C:\path\to\temporary\script\file.cmd` On Unix, if the script has `#!` prefix, it will be executed directly, bypassing the `/bin/sh` shell. @@ -131,7 +131,7 @@ Those are just some initial ideas, we're certain more interesting types of actio If you have ideas for extending this mechanism, definitely [file an Issue on Github](https://github.com/kopia/kopia/issues). -If you develop a useful action script that you'd like to share with the communnity, we encourage you +If you develop a useful action script that you'd like to share with the community, we encourage you to do so by sending us a pull request to add to this web page or you can put them in your own repository and we'll be happy to link it from here. To get started, click 'Edit This Page' link. diff --git a/site/content/docs/Advanced/Architecture/_index.md b/site/content/docs/Advanced/Architecture/_index.md index 63d0f1ee6..b278c6ebd 100644 --- a/site/content/docs/Advanced/Architecture/_index.md +++ b/site/content/docs/Advanced/Architecture/_index.md @@ -69,7 +69,7 @@ The API for CAOS can be found in https://godoc.org/github.com/kopia/kopia/repo/o ### Label-Addressable Manifest Storage (LAMS) -While content-addressable storage is a neat idea, dealing with cryptographic hashes its not very convenient for humans to use. +While content-addressable storage is a neat idea, dealing with cryptographic hashes is not very convenient for humans to use. To address that, Kopia supports another type of storage, used to persist small JSON objects called **Manifests** (describing snapshots, policies, etc.) which are identified by arbitrary `key=value` pairs called labels. diff --git a/site/content/docs/Advanced/Caching/_index.md b/site/content/docs/Advanced/Caching/_index.md index e1bb9304b..98f0b0711 100644 --- a/site/content/docs/Advanced/Caching/_index.md +++ b/site/content/docs/Advanced/Caching/_index.md @@ -17,9 +17,9 @@ Default Cache Directory Location varies by operating system: Where `{unique-id}` is a hash of configuration file used and unique identifier that's specific to a connected repository. -The cache directory location can be overridden when connecting to a repository by specifying `--cache-directory` flag or `KOPIA_CACHE_DIRECTORY` environment variable. It will be persited in the configuration file. +The cache directory location can be overridden when connecting to a repository by specifying `--cache-directory` flag or `KOPIA_CACHE_DIRECTORY` environment variable. It will be persisted in the configuration file. -When set `KOPIA_CACHE_DIRECTORY` environment variable takes precendence over location stored in the configuration file. +When set `KOPIA_CACHE_DIRECTORY` environment variable takes precedence over location stored in the configuration file. ### Cache Types diff --git a/site/content/docs/Advanced/Compatibility/_index.md b/site/content/docs/Advanced/Compatibility/_index.md index 82665bcd0..d6aca095b 100644 --- a/site/content/docs/Advanced/Compatibility/_index.md +++ b/site/content/docs/Advanced/Compatibility/_index.md @@ -16,7 +16,7 @@ In order to ensure that snapshots created with Kopia will be available as the pr - for releases with major version >= `v2` (i.e. `vx.y.z`), *previous version* means previous *major* version (`v(x-1)`). -2. While not explicitly guaranteed, it is possible and likely that Kopia will be able to read (but not necessarily write) snapshots created with even older versions of software than explicitly guaranteed. For example it's likely that Kopia `v0.6.0` will read snapshots created using `v0.3.0`, even though it's three releases behind. +2. While not explicitly guaranteed, it is possible and likely that Kopia will be able to read (but not necessarily write) snapshots created with even older versions of software than explicitly guaranteed. For example, it's likely that Kopia `v0.6.0` will read snapshots created using `v0.3.0`, even though it's three releases behind. 3. In order to avoid corrupting data, Kopia will refuse to mutate repositories it's not designed to safely handle. That means, it will typically only allow reading, but not writing older versions of repository, unless explicitly documented and tested. diff --git a/site/content/docs/Advanced/Logging/_index.md b/site/content/docs/Advanced/Logging/_index.md index faefc641d..1340a1606 100644 --- a/site/content/docs/Advanced/Logging/_index.md +++ b/site/content/docs/Advanced/Logging/_index.md @@ -50,5 +50,5 @@ You can control how much data is written to console and log files by using flags ### Color Output -By default console output will be colored to indicate different log levels, this can be disabled (useful when redirecting output to a file) with `--disable-color`. To force color colorized output when redirecting to a file use `--force-color`. +By default, console output will be colored to indicate different log levels, this can be disabled (useful when redirecting output to a file) with `--disable-color`. To force color colorized output when redirecting to a file use `--force-color`. diff --git a/site/content/docs/Advanced/Maintenance/_index.md b/site/content/docs/Advanced/Maintenance/_index.md index a14df0f8f..e6370bc5c 100644 --- a/site/content/docs/Advanced/Maintenance/_index.md +++ b/site/content/docs/Advanced/Maintenance/_index.md @@ -79,7 +79,7 @@ The current user must be the maintenance owner. ## Maintenance Safety -Kopia's maintenance routine follows certain safety rules which rely on passage of time to ensure correctness. This is needed in case other Kopia clients are currently operating on the repository. To guarantee correctness, certain length of time must pass to ensure all caches and transient state are properly synchronized with the repository. Kopia must also also account for eventual consistency delays intoduced by the blob storage provider. +Kopia's maintenance routine follows certain safety rules which rely on passage of time to ensure correctness. This is needed in case other Kopia clients are currently operating on the repository. To guarantee correctness, certain length of time must pass to ensure all caches and transient state are properly synchronized with the repository. Kopia must also account for eventual consistency delays introduced by the blob storage provider. This means that effects of full maintenance are not immediate - it may take several hours and/or multiple maintenance cycles to remove blobs that are not in use. diff --git a/site/content/docs/Advanced/Synchronization/_index.md b/site/content/docs/Advanced/Synchronization/_index.md index c9dcd1112..9b0e21b1b 100644 --- a/site/content/docs/Advanced/Synchronization/_index.md +++ b/site/content/docs/Advanced/Synchronization/_index.md @@ -17,13 +17,13 @@ $ kopia repository sync-to gcs --bucket my-bucket The calling user must have read access to current repository and read/write access to the destination. -By default synchronization does not perform any deletions in the destination location, even if the source file has been deleted. Without deletions, the resulting repository will still be correct, but will not benefit from compaction and will run more slowly. To allow deletions, pass `--delete` option: +By default, synchronization does not perform any deletions in the destination location, even if the source file has been deleted. Without deletions, the resulting repository will still be correct, but will not benefit from compaction and will run more slowly. To allow deletions, pass `--delete` option: ``` $ kopia repository sync-to filesystem --path /dest/repository --delete ``` -When synchronizing to a filesystem location, it is important to check that the filesystem is mounted correctly. To ensure that Kopia will not unneccessarily download potentially large repositories when destination filesystem is accidentally unmounted, pass `--must-exist`: +When synchronizing to a filesystem location, it is important to check that the filesystem is mounted correctly. To ensure that Kopia will not unnecessarily download potentially large repositories when destination filesystem is accidentally unmounted, pass `--must-exist`: ``` $ kopia repository sync-to filesystem --path /dest/repository --must-exist diff --git a/site/content/docs/Features/_index.md b/site/content/docs/Features/_index.md index 954f1982e..b6e33eff3 100644 --- a/site/content/docs/Features/_index.md +++ b/site/content/docs/Features/_index.md @@ -24,7 +24,7 @@ Kopia also uses splitting based on [rolling hash](https://en.wikipedia.org/wiki/ ### Restore -To restore data, Kopia can mount contents of a Repository as a local disk and you can use normal file copy tools to perform full or selective restore. +To restore data, Kopia can mount the contents of a Repository as a local disk, and you can use normal file copy tools to perform full or selective restore. ### Encryption @@ -43,7 +43,7 @@ Compression and decompression can be parallelized to speed up the process. * [zstd](https://github.com/klauspost/compress/tree/master/zstd) : [Zstandard](https://facebook.github.io/zstd/) is a real-time compression algorithm, providing high compression ratios. It offers a very wide range of compression / speed trade-off, while being backed by a very fast decoder. A high performance compression algorithm is implemented. For now focused on speed. -You can activate compression on a per directory basis +You can activate compression on a per-directory basis ```shell kopia policy set --compression= @@ -86,7 +86,7 @@ Kopia has rich command-line interface for managing snapshots and policies, but a ### API Server -Kopia can be run in a server mode, in which case it exposes a HTTP API that can be used to build client tools that can trigger snapshots, get their status and access snapshotted data. +Kopia can be run in a server mode, in which case it exposes an HTTP API that can be used to build client tools that can trigger snapshots, get their status and access snapshotted data. ### Disaster Recovery diff --git a/site/content/docs/Getting started/_index.md b/site/content/docs/Getting started/_index.md index dcb58dc1a..767050c1e 100755 --- a/site/content/docs/Getting started/_index.md +++ b/site/content/docs/Getting started/_index.md @@ -118,7 +118,7 @@ uploaded snapshot 8a45c3b079cf5e7b99fb855a3701607a (root kfe997567fb1cf8a13341e4ca11652f70) in 563.670362ms ``` -Notice that snapshot creation was nearly instantenous - Kopia did not have to upload +Notice that snapshot creation was nearly instantaneous - Kopia did not have to upload almost any files to the repository, except tiny piece of metadata about the snapshot itself. All snapshots in Kopia are always incremental - they will only upload files that are not in the repository yet, which saves storage space and upload time. This even applies to files that were moved or renamed. In fact if two computers have exactly the same file, it will still be stored only once. @@ -324,7 +324,7 @@ Files policy: .kopiaignore inherited from (global) ``` -Finally to list all policies, we can use `kopia policy list`: +Finally, to list all policies, we can use `kopia policy list`: ``` $ kopia policy list diff --git a/site/content/docs/Installation/_index.md b/site/content/docs/Installation/_index.md index 5c042dddc..978cbc6ba 100644 --- a/site/content/docs/Installation/_index.md +++ b/site/content/docs/Installation/_index.md @@ -68,7 +68,7 @@ Simply download file named `KopiaUI-Setup-X.Y.Z.exe`, double click and follow on ### macOS CLI using Homebrew -On macOS you can use [Homebrew](https://brew.sh) to install and keep Kopia up-to-date. +On macOS, you can use [Homebrew](https://brew.sh) to install and keep Kopia up-to-date. To install: @@ -109,7 +109,7 @@ echo "deb http://packages.kopia.io/apt/ stable main" | sudo tee /etc/apt/sources sudo apt update ``` ->By default the **stable** channel provides official stable releases. If you prefer you can also select **testing** channel (which also provides release candidates and is generally stable) or **unstable** which includes all latest changes, but may not be stable. +>By default, the **stable** channel provides official stable releases. If you prefer you can also select **testing** channel (which also provides release candidates and is generally stable) or **unstable** which includes all latest changes, but may not be stable. Finally, install Kopia or KopiaUI: @@ -141,9 +141,9 @@ gpgkey=https://kopia.io/signing-key EOF ``` ->By default the **stable** channel provides official stable releases. If you prefer you can also select **testing** channel (which also provides release candidates and is generally stable) or **unstable** which includes all latest changes, but may not be stable. +>By default, the **stable** channel provides official stable releases. If you prefer you can also select **testing** channel (which also provides release candidates and is generally stable) or **unstable** which includes all latest changes, but may not be stable. -Finally install Kopia or KopiaUI: +Finally, install Kopia or KopiaUI: ```shell sudo yum install kopia @@ -217,9 +217,9 @@ Kopia provides pre-built Docker container images for `amd64`, `arm64` and `arm` The following tags are available: -* `latest` - tracks latest stable release -* `testing` - tracks latest stable or pre-release (such as a beta or release candidate) -* `unstable` - tracks latest unstable nightly build +* `latest` - tracks the latest stable release +* `testing` - tracks the latest stable or pre-release (such as a beta or release candidate) +* `unstable` - tracks the latest unstable nightly build * `major.minor` - latest patch release for a given major and minor version (e.g. `0.8`) * `major.minor.patch` - specific stable release diff --git a/site/content/docs/Reference/Command-Line/_index.md b/site/content/docs/Reference/Command-Line/_index.md index 3f2445b8e..d272c7aeb 100644 --- a/site/content/docs/Reference/Command-Line/_index.md +++ b/site/content/docs/Reference/Command-Line/_index.md @@ -59,7 +59,7 @@ NOTICE: The token printed above can be trivially decoded to reveal the repositor For each repository connection, Kopia maintains a configuration file and local cache: -By default the configuration file is located in your home directory under: +By default, the configuration file is located in your home directory under: * `%APPDATA%\kopia\repository.config` on Windows * `$HOME/Library/Application Support/kopia/repository.config` on macOS diff --git a/site/content/docs/Repositories/_index.md b/site/content/docs/Repositories/_index.md index ae2bd17ae..8bf73977f 100644 --- a/site/content/docs/Repositories/_index.md +++ b/site/content/docs/Repositories/_index.md @@ -131,7 +131,7 @@ sftp> ### Creating a repository -Once the passwordless connection works, then you can create a Kopia SFTP repository. Assuming you want the files to be stored under `/remote/path`, run the command below. Adjust the user name and paths to the key file and known hosts file as necessary. +Once the passwordless connection works, then you can create a Kopia SFTP repository. Assuming you want the files to be stored under `/remote/path`, run the command below. Adjust the username and paths to the key file and known hosts file as necessary. ```shell $ kopia repository create sftp \ @@ -180,7 +180,7 @@ server-side timestamps. ### Creating a repository -First you should follow rclone instructions for setting up a remote. This is provider specific, detailed instructions can be fount at https://rclone.org/#providers. +First you should follow rclone instructions for setting up a remote. This is provider specific, detailed instructions can be found at https://rclone.org/#providers. Assuming you've configured a remote named `my-remote`, you may create Kopia repository using: diff --git a/site/content/docs/Repository Server/_index.md b/site/content/docs/Repository Server/_index.md index 90c9e9c10..772eae019 100644 --- a/site/content/docs/Repository Server/_index.md +++ b/site/content/docs/Repository Server/_index.md @@ -4,14 +4,14 @@ linkTitle: "Repository Server" weight: 44 --- -By default every user of Kopia repository directly connects to a underlying storage using read-write access. If the users who share repository don't completely trust each other, some malicious actors can delete repository data structures causing data loss for others. +By default, every user of Kopia repository directly connects to an underlying storage using read-write access. If the users who share repository don't completely trust each other, some malicious actors can delete repository data structures causing data loss for others. Repository Server allows an instance of kopia to proxy access to the underlying storage and has Kopia clients proxy all access through it, only requiring username and password to talk to server without any knowledge of repository storage credentials. In repository server mode, each user is limited to seeing their own snapshots and policy manifest without being able to access those from another user account. ->NOTE: Only snapshot and policy manifests are access-controlled, not the underlying contents. If two users shared the same file, it will be backed using exactly the same same content IDs. The consequence of this is that if a third user can guess the content ID of files in the repository, they will be able to access the files. Because content IDs are one-way salted hashes of contents, in principle it should be impossible to guess content ID without possessing original content. +>NOTE: Only snapshot and policy manifests are access-controlled, not the underlying contents. If two users shared the same file, it will be backed using exactly the same content IDs. The consequence of this is that if a third user can guess the content ID of files in the repository, they will be able to access the files. Because content IDs are one-way salted hashes of contents, in principle it should be impossible to guess content ID without possessing original content. ## Starting Repository Server @@ -42,7 +42,7 @@ Other commands are also available: ## Configuring Allowed Users - Kopia v0.7 ->NOTE: This method is still supported in v0.8 but it's recommended to use `kopia server user` to manage users +>NOTE: This method is still supported in v0.8, but it's recommended to use `kopia server user` to manage users instead. In Kopia v7.0 the user list must be put in a text file formatted using the [htpasswd](https://httpd.apache.org/docs/2.4/programs/htpasswd.html) utility from Apache. diff --git a/site/content/docs/Upgrade/_index.md b/site/content/docs/Upgrade/_index.md index f49f54c80..35115b66d 100644 --- a/site/content/docs/Upgrade/_index.md +++ b/site/content/docs/Upgrade/_index.md @@ -6,7 +6,7 @@ weight: 21 ### Upgrading Kopia to v0.9 -Kopia v0.9 adds support for several new features thanks to brand new index format. +Kopia v0.9 adds support for several new features thanks to a brand-new index format. If your repository was created in a version older than v0.9, please follow the steps below to upgrade.