Open
Description
With upcoming change on server which would allow 1 blocking and N unblocking uploads we need to split work by changes/file type to benefit from uploads concurrency.
Group pending (push) changes into separate uploads:
- non-blocking with only
added
non-versioned and not qgis project data (e.g. all but .gpkg, .qgs, qgz) - blocking one with the rest of changes (incl. updated/removed files)
Then client can start sending chunks via multiple upload transactions to improve overall performance.
Because every push finish request will bump project version it might happen that 2 concurrent finish request could collide (race conditions). In such scenario server would temporarily block 2nd request with 409 error code and client just need to wait and retry finish.