Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2021-12-31 | docs: add documentation comments to crate | Lars Wirzenius | 1 | -0/+38 | |
Also, make it an error for a public symbol to not be documented. Sponsored-by: author | |||||
2021-08-16 | refactor: move file reading, etc, for backups to backup_run | Lars Wirzenius | 1 | -75/+1 | |
Move code to read a file as chunks during a backup, and upload any new chunks to the chunk server, into `src/backup_run.rs`. Previously they were mostly in `src/client.rs`, which is meant to provide an abstraction for using the chunk server API. Sponsored-by: author | |||||
2021-08-09 | refactor: use async for "obnam backup" | Lars Wirzenius | 1 | -197/+50 | |
This changes things so that "obnam backup" uses async for everything. The old non-async BackupClient and ChunkClient are dropped. This does NOT move the chunking, and checksum computation, to its own function. This will happen later. Sponsored-by: author | |||||
2021-08-01 | refactor: use a struct for GenId | Lars Wirzenius | 1 | -2/+2 | |
This means a ChunkId can't be used instead. Sponsored-by: author | |||||
2021-08-01 | refactor: add a type alias for generation ids | Lars Wirzenius | 1 | -9/+7 | |
This will make it harder to accidentally use a string. Can still be confused with a chunk id. Sponsored-by: author | |||||
2021-07-23 | refactor: use async for "obnam list-files" | Lars Wirzenius | 1 | -0/+29 | |
Sponsored-by: author | |||||
2021-07-23 | refactor: use async for "obnam list" | Lars Wirzenius | 1 | -0/+17 | |
Sponsored-by: author | |||||
2021-07-23 | refactor: use async for "obnam get-chunk" | Lars Wirzenius | 1 | -0/+114 | |
Sponsored-by: author | |||||
2021-07-22 | Merge branch 'feature/114-replace-string-with-chunkid' into 'main' | Lars Wirzenius | 1 | -2/+2 | |
In errors, store chunk ids as `ChunkId`, not `String` Closes #114 See merge request obnam/obnam!165 | |||||
2021-07-21 | Replace ClientResult with plain Result | Alexander Batischev | 1 | -20/+22 | |
2021-07-21 | In errors, store chunk ids as `ChunkId`, not `String` | Alexander Batischev | 1 | -2/+2 | |
Fixes #114. | |||||
2021-05-31 | refactor: only send/receive encrypted chunks with server | Lars Wirzenius | 1 | -65/+65 | |
Also, refactor the client code to split out the HTTP bits more clearly. The refactor should've been separately, but got entangled with other changes during frantic debugging. | |||||
2021-05-29 | refactor: make metadata be part of datachunk | Lars Wirzenius | 1 | -18/+12 | |
This makes it harder to lose the metadata for a chunk, or to use unrelated metadata and chunk. Also, soon I will refactor things for encrypting chunks, which will need metadata embedded in the encrypted chunk. Sponsored-by: author | |||||
2021-05-29 | refactor: split bare chunk server client into its own struct | Lars Wirzenius | 1 | -71/+84 | |
This makes the code doing HTTP requests simpler for easier comprehension and debugging. | |||||
2021-04-29 | feat: improve error messages | Lars Wirzenius | 1 | -39/+78 | |
All unclear error messages should now be clearer. For example, all the ones related to a file mention the file name and the attempted operation that failed. | |||||
2021-04-10 | refactor: move ClientConfig into its own module | Lars Wirzenius | 1 | -120/+2 | |
2021-04-09 | feat: add "obnam init" subcommand | Lars Wirzenius | 1 | -3/+44 | |
This reads a passphrase and derives two passwords from that, and stores them next to the configuration file. The passwords aren't yet used for anything, that will come later. | |||||
2021-03-27 | refactor: drop unnecessary conversions to the same type | Lars Wirzenius | 1 | -5/+5 | |
2021-03-27 | refactor: use Option::or_else to avoid unnecessary allocation | Lars Wirzenius | 1 | -1/+4 | |
2021-03-27 | refactor: rename ChunkId::from_str to ChunkId::recreate | Lars Wirzenius | 1 | -1/+1 | |
Less confusion with FromStr::from_str this way. | |||||
2021-03-03 | refactor: drop unnecessary derives for config structs | Lars Wirzenius | 1 | -2/+2 | |
We never serialize TentativeClientConfig or de-serialize ClientConfig, so those derives are unnecessary. | |||||
2021-03-03 | fix: don't allow unknown fields in configuration files | Lars Wirzenius | 1 | -0/+1 | |
2021-02-19 | feat: backup and restore named pipes (FIFOs) | Lars Wirzenius | 1 | -0/+1 | |
2021-02-19 | feat: back up and restore Unix domain sockets | Lars Wirzenius | 1 | -4/+7 | |
2021-02-16 | refactor: use bytesize::MIB constant for clearer size | Lars Wirzenius | 1 | -1/+2 | |
2021-02-06 | feat! back up multiple roots | Lars Wirzenius | 1 | -5/+5 | |
This changes the client configuration file "root" field (with a single string) to "roots" (a list of strings). | |||||
2021-02-06 | feat: make client config fields be optional, have defaults | Lars Wirzenius | 1 | -2/+36 | |
We don't want to require the user to have to specify every possible setting in client configuration files. Having reasonable defaults when possible is a better way. | |||||
2021-02-06 | feat: client verifies server's TLS certificate by default | Lars Wirzenius | 1 | -3/+5 | |
Configuration setting can disable it. | |||||
2021-02-06 | feat: client requires an HTTPS URL for server | Lars Wirzenius | 1 | -1/+12 | |
2021-02-04 | feat: add obnam config subcommand | Lars Wirzenius | 1 | -2/+2 | |
2021-02-04 | refactor: have per-module error enums | Lars Wirzenius | 1 | -26/+62 | |
This means that a function that parses step bindings can't return an error that the document is missing a title. Such an error return would be nonsensical, and we use the Rust type system to prevent it, at a small cost of being a bit verbose. Additional benefit is that the library portion of Obnam doesn't return anyhow::Result values anymore. | |||||
2021-01-19 | refactor: use ChunkId directly in errors, instead of String | Lars Wirzenius | 1 | -3/+3 | |
2021-01-17 | feat: add a default configuration file | Lars Wirzenius | 1 | -1/+3 | |
The ~/.config/obnam/obnam.yaml file will be used as the configuration file by default. The ~/.config directory can be overridden by setting the XDG variable (XDG_CONFIG_HOME), or the whole file can be overridden with the --config option to obnam. | |||||
2021-01-10 | feat! use SQLite db for chunk index on server | Lars Wirzenius | 1 | -11/+27 | |
This speeds startup a lot. However, the backup repository needs to be re-created from scratch and internal APIs have change in incompatible ways. | |||||
2021-01-05 | refactor: move policy on whether to back up a file into a module | Lars Wirzenius | 1 | -3/+3 | |
This commit also splits up the src/cmd/backup.rs module into other, smaller, more cohesive modules that are easier to understand and use. | |||||
2021-01-04 | refactor: use fetch_chunk to fetch generation | Lars Wirzenius | 1 | -13/+3 | |
Also, add GenerationChunk::from_data_chunk function. | |||||
2021-01-04 | feat: verify checksum of chunks downloaded from server | Lars Wirzenius | 1 | -1/+18 | |
2020-12-31 | feat: incremental backup | Lars Wirzenius | 1 | -1/+0 | |
This uses the previous, latest generation as a guideline to see what is new or changed. | |||||
2020-12-31 | refactor: add LocalGeneration type for read-only operations | Lars Wirzenius | 1 | -6/+25 | |
This splits the use of NascentGeneration to more cohesive "new generation being built" versus "existing generation being restored". | |||||
2020-12-30 | debug | Lars Wirzenius | 1 | -0/+1 | |
2020-12-30 | fix: actually use nanosecond timestamps | Lars Wirzenius | 1 | -1/+1 | |
2020-12-30 | feat: add GenerationList | Lars Wirzenius | 1 | -2/+3 | |
Various part of Obnam will need to deal with lists of generations. Abstract this. | |||||
2020-12-30 | feat! store and show timestamp for each backup generation | Lars Wirzenius | 1 | -3/+14 | |
This changes the output format of "obnam list". | |||||
2020-12-26 | refactor: rename FileSystemEntry::path to pathbuf | Lars Wirzenius | 1 | -3/+3 | |
This is a step towards changing how filenames are stored in FileSystemEntry. | |||||
2020-12-23 | feat! only specify base URL of server, without /chunks | Lars Wirzenius | 1 | -6/+10 | |
2020-12-23 | feat: add log file to client | Lars Wirzenius | 1 | -0/+1 | |
2020-12-12 | feat: back up and restore symlinks | Lars Wirzenius | 1 | -0/+2 | |
2020-11-22 | feat! use temporary files for SQLite databases | Lars Wirzenius | 1 | -1/+0 | |
The user should not have to specify filenames for the databases, since they don't actually care where they're stored. | |||||
2020-11-18 | feat! change client config to take a base URL instead of host, port | Lars Wirzenius | 1 | -5/+6 | |
2020-11-09 | fetch gen sqlite file when restoring | Lars Wirzenius | 1 | -0/+36 | |