Zipping and syncing

I have read this idea: Alternative Method of Keeping Projects Synced / Cloud Syncing / Knowledge Base - Literature and Latte Support and it sounds interesting. Basically, you sync the zipped backup—one file—instead of the myriad Scrivener files. You have to keep moving backups in and out of a shared backup folder, so there is a bit of a hassle, but it does sound pretty bullet proof.

The idea occurred to me that if a closed Scrivener project were a zipped archive, Word style, then syncing it among machines would become pretty simple: save Scrivener project on a synced folder on machine A, go over to Machine B and see if the latest version is there yet; when it is, open it and start working. Like Word, in this mode Scrivener would need to unzip the zipped version on open and re-zip it on close. Obviously, such a capability would need to be an option rather than a replacement for the current method. You could still get out of sync if you didn’t close a Scrivener project before opening it elsewhere, but I believe that’s the only real risk. Advantage: no special API would be needed, since Scrivener would only be unzipping/opening and zipping/writing one file per project. Also, Scrivener could periodically check to see if the zipfile’s date or size has changed unexpectedly, as a crude way to detect a simultaneous open+close of a project—in that case, it could issue a warning and, on close, write to a different zip file.

The difference between Scrivener and Word is that a Word document is all loaded into memory when opened; a Scrivener project is potentially 100s of files but only the ones necessary for what you are actually working on are loaded into memory. If a zipped format was used, what would happen with a 100GB project? There are those whose projects are that big.

3 Likes

Well, I use the same shared cloud folder for my zip backups for both machine A and B. On machine A, i use the File > Backup now function to backup the full project as one file to my designated cloud folder (Google Drive). Now on computer B I open the shared cloud folder and go to my saved backup folder and use the Date modified column to assure I am picking the most recent backup.
This is a pain, but the safest way. I move the current Scrivener version of Project X to my desktop on computer B, and unzip the latest backup of Project X from computer A into the Project Folder on Computer B. Once I know it is working, I delete the old Project Folder.
I have never had a problem this way. Though note when first open computer B may need to let it sync to the cloud folder, before the latest backups will be available to unzip.

1 Like

I’m pretty sure that in a docx project, there are many files other than the main text, and not all need to be loaded. But from Scrivener’s point of view, once it unzipped the “project.scrivz” file into a hidden .project.scriv bundle, nothing would be changed. Normal work with many files in a bundle would ensue until closing, at which point project.scrivz would be overwritten and .project.scriv removed.

It might take a beat or two more to open or close a zipped Scrivener project, and would use more disk space while the project is open, but other than that, it would just be good ol’ Scrivener.

It is not unusual for Scrivener projects to be well into the hundreds of megabytes, and gigabyte projects are not unknown. So it could definitely take more than a “beat or two” to open or close the project.

Possibly worse, every project-saving operation, including syncing, would have to contend with the entire project folder, plus the overhead of zipping/unzipping. Forcing people to resync an entire GB-sized project because they added one line would be quite likely to send hardware flying through the air.

The option has been discussed before, and we’ve decided it’s not workable at the Scrivener-wide level. As the “alternative method” describes, though, we can certainly accommodate people who choose to work this way.

1 Like

To each their own. But this logic means that the possibility of an unusually large project means that people with more typical projects can’t have this feature. My last big project is a measly 253 Mbytes. The bundle took about 5-6 seconds to zip on my MacBook Pro. To me, if I wanted to use this method to sync among my devices, that amount of time or even several times more would totally be worth it, if it was in exchange for a simple and bulletproof way to work on multiple devices.

But never mind. This Nano, for a change, I decided to use Ulysses, which syncs out of the box. It will be interesting to see how much this impedes my writing efforts.

Note that it’s possible to automate much of the process. Either Scrivener’s automatic backups or the File → Backup → Backup To command can be used to create a time-stamped backup in a synchronized location.

1 Like

That is exactly what I do with my scrivener zip backup folder on my cloud (google drive) and thus reachable when at another location with my labtop.