A user should be able to synchronize projetcs even when memory is sparse.
Doability Analysis
Is-State of Project Sharing Memory Usage
missing files are calculated per project
one archive per project is created
archives are stored in a system-dependent temporary folder
files are read/archive is written with 32kb buffers
one big archive is created from those project archives
archive is stored in a system-dependent temporary folder
files are read/archive is written with 32kb buffers
big archive is sent
archive is completely read into memory
archive is sent package-based
archives are deleted
Required Mechanisms
stream archive instead of loading it into memory completely first
Implementation
The XMPPTransmitter has two methods that are related to this mechanism: sendArchive and receiveArchive. Those would need to be refactored to use a streaming-based approach instead of a package-based one.