Skip to content

Conversation

wonder-sk
Copy link
Contributor

Adds support for asynchronous sync - i.e. to be able to start push/pull of a project, the download will run in a background thread and then when download is finished (it can be checked whether it has happened already), we do finalization of the job (which should not take long so it is in the main thread).

This should allow the GUI to 1. allow cancellation, 2. show progress.

The command line interface has been updated to have progress bar during download/push/pull and allows graceful cancellation.

The number of parallel request has been fixed to 4 so that we don't drain server resources too much. This could be modified later or made configurable. There is now a single code path unlike before with different code paths for parallel/non-parallel approach.

By the way, MerginProject object has been moved to a new file without any changes to the code.

TODO:

  • remove old (non-async) implementations
  • remove old (non-async) CLI support
  • update tests not to test parallel/non-parallel code path
  • add a test to check that code handles correctly pull with 1. deleted basefile, 2. corrupted basefile
  • more documentation of the new code (?)

@wonder-sk
Copy link
Contributor Author

Continued in #44

@wonder-sk wonder-sk closed this Feb 17, 2020
@wonder-sk wonder-sk deleted the async branch April 23, 2021 07:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant