summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2021-09-15fix: add 'impl' to bindings files, for new SubplotLars Wirzenius3-53/+153
Sponsored-by: author
2021-09-15refactor: move document metadata to topLars Wirzenius1-36/+30
My Emacs' markdown-mode no longer gets confused by this and it's clearer tot have it at the top. Sponsored-by: author
2021-09-13Merge branch 'release-process' into 'main'Lars Wirzenius1-27/+43
docs: update RELEASE.md to streamline the process Closes #121 See merge request obnam/obnam!177
2021-09-13fix: refer to the right projectLars Wirzenius1-4/+4
Thank you, Alexander Batischev, for catching the Subplot. Also, refer to Obnam as Obnam, not Obnam2. Sponsored-by: author
2021-09-12docs: update RELEASE.md to streamline the processLars Wirzenius1-24/+40
Sponsored-by: author
2021-09-11Merge branch 'cargo-target' into 'main'Lars Wirzenius3-28/+25
test: tell Subplot-generated test program where the binaries are Closes #133 See merge request obnam/obnam!176
2021-09-11test: run Obnam binaries from where Cargo puts themLars Wirzenius2-6/+7
Sponsored-by: author
2021-09-10test: tell Subplot-generated test program where the binaries areLars Wirzenius1-22/+18
Previously, we blindly assumed that Cargo puts binaries in `target/debug` in the source tree. That is the default, but the user can change it. Now we get the Cargo target directory by parsing the output of "cargo metadata" and pass in the path to the test program via an environment variable. Also, reformat shell script. Sponsored-by: author
2021-08-29Merge branch 'bugfix/simplify-after-174' into 'main'Lars Wirzenius1-2/+0
Drop struct field which is always 0 See merge request obnam/obnam!175
2021-08-27Drop struct field which is always 0Alexander Batischev1-2/+0
2021-08-18Merge branch 'refactor_upload_chunkify' into 'main'Lars Wirzenius4-398/+274
change "obnam backup" to be all async Closes #113 See merge request obnam/obnam!174
2021-08-16refactor: rename function to have a clearer nameLars Wirzenius1-13/+8
Rename `read_file` to `upload_regular_file` to better describe the purpose of the function. Sponsored-by: author
2021-08-16refactor: move file reading, etc, for backups to backup_runLars Wirzenius3-103/+108
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-16refactor: rename function for clarityLars Wirzenius1-2/+2
Sponsored-by: author
2021-08-16refactor for clarityLars Wirzenius1-30/+30
Sponsored-by: author
2021-08-16refactor: for clarityLars Wirzenius1-4/+4
Sponsored-by: author
2021-08-09refactor: for simplicityLars Wirzenius2-17/+4
Sponsored-by: author
2021-08-09refactor: split long func into twoLars Wirzenius2-28/+69
Sponsored-by: author
2021-08-09refactor: use async for "obnam backup"Lars Wirzenius3-229/+89
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-09refactor: drop NascentGeneration::insert_iterLars Wirzenius1-31/+12
It was only used by a test function, which is now changed to not use it. Add comment to the test function that it's too complicated and things need refactoring. However, that probably needs to wait for new abstractions. Sponsored-by: author
2021-08-09refactor: use for loop over an iterator instead of .insert_iterLars Wirzenius2-56/+66
This makes the code more explicit, which is good for now, and is a step towards making it all use async. There will be a need to refactor this further with better abstractions, once async works. Sponsored-by: author
2021-08-09refactor: call NascentGeneration::insert from ::insert_iterLars Wirzenius1-4/+1
This is a step towards getting rid of insert_iter entirely, which would make it easier to make `obnam backup` use async. I originally split insert_iter so I could use a single transaction for inserting many rows, but it seems to not be needed for speed after all. I've benchmarked backing up a large file with and without this change, and there's no real difference. I've not benchmarked with a large number of files. Even if there's a performance hit from using multiple transactions, my hope is that by being able to use more CPUs/threads for backing up will outweigh that by far. Sponsored-by: author
2021-08-09Merge branch 'fix-macos' into 'main'Lars Wirzenius2-2/+7
Fix compilation on MacOS See merge request obnam/obnam!173
2021-08-09Fix compilation on MacOSOssi Herrala2-2/+7
For chmod() we need to cast mode parameter from u32 to u16 because MacOS has 16 bit mode_t while Linux is using 32 bits.
2021-08-04Merge branch 'bugfix/overlapping-progress-bars' into 'main'Lars Wirzenius1-8/+17
fix: do not overlap "download" and "incremental" progress bars See merge request obnam/obnam!172
2021-08-03fix: do not overlap "download" and "incremental" progress barsAlexander Batischev1-8/+17
The problem is the same as #101, except this time it affected a different set of progress bars. It was introduced in e6147a3b7b58b151fb7ad9b1f748e0a666f271de. This commit postpones the creation of "incremental" progress bar until after we've fetched the previous generation. This avoids showing both progress bars at once.
2021-08-02Merge branch 'feature/117-obnam_server_log' into 'main'Lars Wirzenius4-4/+63
feat: configure log verbosity with OBNAM_SERVER_LOG envvar Closes #117 See merge request obnam/obnam!170
2021-08-02Merge branch 'resolve' into 'main'Lars Wirzenius12-26/+92
add "obnam resolve" Closes #118 and #135 See merge request obnam/obnam!171
2021-08-01refactor: use a struct for GenIdLars Wirzenius5-13/+36
This means a ChunkId can't be used instead. Sponsored-by: author
2021-08-01refactor: add a type alias for generation idsLars Wirzenius8-19/+23
This will make it harder to accidentally use a string. Can still be confused with a chunk id. Sponsored-by: author
2021-08-01feat: add command to resolve a generation ref into a chunk idLars Wirzenius4-0/+39
Sponsored-by: author
2021-07-31feat: configure log verbosity with OBNAM_SERVER_LOG envvarAlexander Batischev4-4/+63
Fixes #117.
2021-07-31Merge branch 'cleanups' into 'main'Lars Wirzenius9-19/+19
cleanup: fix things rustc/clipppy now complain about See merge request obnam/obnam!169
2021-07-30cleanup: fix things rustc/clipppy now complain aboutLars Wirzenius9-19/+19
Mostly https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow. Sponsored-by: author
2021-07-30Merge branch 'feature/112-cachedir-protection' into 'main'Lars Wirzenius6-58/+259
Backup: exit non-zero if new CACHEDIR.TAGs are found (unless `exclude_cache_tag_directories` is disabled) Closes #112 See merge request obnam/obnam!168
2021-07-28Add subplot to verify new mitigationAlexander Batischev1-5/+50
2021-07-28Backup: exit non-zero if new tags are foundAlexander Batischev2-2/+11
2021-07-28Store backup_roots() outcome in a structAlexander Batischev2-12/+30
2021-07-28After the backup, print out a list of new CACHEDIR.TAGsAlexander Batischev2-7/+26
2021-07-28FsIter: annotate entries belonging to CACHEDIR.TAGsAlexander Batischev2-23/+31
2021-07-28Mark CACHEDIR.TAGs in the databaseAlexander Batischev2-24/+126
In the following commits, we'll use this to check if a tag existed before.
2021-07-26Merge branch 'async-get-chunk' into 'main'Lars Wirzenius7-34/+226
use async for read-only access to chunk server See merge request obnam/obnam!167
2021-07-23refactor: async for "obnam show-generation"Lars Wirzenius1-5/+10
Sponsored-by: author
2021-07-23refactor: use async for "obnam restore"Lars Wirzenius1-18/+27
Sponsored-by: author
2021-07-23refactor: use async for "obnam list-files"Lars Wirzenius2-4/+39
Sponsored-by: author
2021-07-23refactor: use async for "obnam list"Lars Wirzenius2-3/+26
Sponsored-by: author
2021-07-23refactor: use async for "obnam get-chunk"Lars Wirzenius2-4/+123
Sponsored-by: author
2021-07-22chore: add rustfmt.tomlLars Wirzenius1-0/+1
For some reason my new Emacs config that uses rust-analyzer requires edition to be set in rustfmt.toml, not just Cargo.toml. Sponsored-by: author
2021-07-22Merge branch 'feature/114-replace-string-with-chunkid' into 'main'Lars Wirzenius2-4/+6
In errors, store chunk ids as `ChunkId`, not `String` Closes #114 See merge request obnam/obnam!165
2021-07-22Merge branch 'feature/115-no-custom-results' into 'main'Lars Wirzenius12-133/+136
Replace custom result types with standard `Result` Closes #115 See merge request obnam/obnam!166