Opening on two laptops

This is all probably well off topic for what the OP is intending to do, but to clarify a few points regard CVS (git or whatever):

  1. All Scrivener projects are folders with lots of files and folders in them, and outside of the Mac GUI that is what they will always look like. Any Windows/Linux user can attest to that, or anyone that uses the command-line on a Mac.

    So by extension, any sync service is going to be interfacing with a project at this level of independent files, even those that pretend otherwise like iCloud. They are all going to have to keep everything internal to the project on the same page.

    By and large this shouldn’t matter, as any sync engine or CVS is going to be keeping the whole up to date together, just as your disk would when you edit it with Scrivener, or make a copy of it to another disk.

  2. So if anything a system like Git, if you know how to use it effectively, is safer and better to use than a mainstream sync tool which handles most of these matters in a semi-automatic fashion that may or may not be to your advantage. The only real user-side difference between the two is that a system like Git would let you know exactly what conflicted inside two different files and offer to help you merge them, whereas a sync tool won’t bother, will just duplicate the internal files, and leave it up to you to merge them yourself. The conflict itself may not even be in the content, but that’s something you have to figure out on your own.

Github itself is fine, I would not classify it as a bad idea. We use it ourselves for the Windows tutorial project, and I use it personally with a few of my projects. I’ve never run into any issues with it, whereas more standard sync services have caused more issues for me (to the point that I don’t use them for live projects).

You are right though that in most cases you wouldn’t want to manually merge a branch or do anything wild with it like that (and if anyone reading this has no idea what those words mean, then just stick with mainstream sync :smiley: ). You could, especially if you know what you are doing, but I would guess it would more often be more effort than is worth the result. It would be easier to just Save As an experimental fork locally, and if you like what you did with it, use Scrivener’s project import & merge feature (on a Mac). Let it handle that complicated process for you, rather than trying to use CVS tools and burying yourself in Scrivener project format particulars.

But if you are very familiar with these tools, and largely use it as a “better sync”, treating your usage of it roughly like you would treat sync—as I say it’s probably all around a better solution since it gives you more detailed data on what went wrong, if things do go wrong. Certainly, if one is using it as @PatchworkCat suggested, as a backup that only gets updated from a local copy, I can see no technical reason for why that would be problematic. Most of the issues with CVS are human-created issues of expecting the internal components of a file format to be as forkable as a code base. It would be just as difficult to fork and merge a DOCX file you’ve unzipped and hosted on Github. That’s all just more down to how file formats tend to excessively self-reference and require a lot of knowledge of how that is done to properly repair them.

The only flaw we are aware of with Github is cross-platform related, and easily solved with configuration to suppress automatic Win/UNIX line ending conversion.

2 Likes