What's the best way to sync files between two computers

Probably like most of you, I write using a laptop when I’m on the go, and my desktop when I’m home. I often need to update my writing by synchronizing the laptop files with the desktop, and vice versa.

I’m on a wireless home network, and would love to have the files synchronize automatically when the laptop and desktop are within range of each other.

What is the easiest way to do this?

Thanks in advance, Barry

You’re probably going to want a dedicated sync app for this - they range from the command-line and technical-heavy-duty, some of which are optimized for total harddrive backups, all the way down to lightweight folder-syncer’s - which is sounds like you are looking for, something that syncs a single folder with some docs in it.

A note of caution - if you edit the same Scrivener document in two places, the more recent edit will blow away the older one on sync (perhaps that is obvious)… unless you use a sync program that looks inside the package, as some geekier Linux-adapted or freeware sync utilities might. In that case, it will either automagically merge your changes or (more likely) break your document by causing the binder to loose track of some of the new and old resources.

Recommendation: search Versiontracker for “sync,” and go for something simple, easy, and shiny.

FileSync 1.1 -recent, easy, free, and well reviewed.

versiontracker.com/dyn/moreinfo/macosx/31005

Actually I’ve kinda fallen in love with a little ‘thumb drive’ that I picked up a few days ago. It seems to be the answer to my dilemma.

It’s incredibly easy to just ‘save’ the Scrivener draft to the hard drive AND the thumb drive each time I’m done writing on the desktop. Then I simply insert the thumb drive into my laptop and GO. Open up Scrivener on the laptop, then the file from the thumb drive, and I’m there with an updated version of whatever I’m writing. Then reverse the process when I’m done. Life is good.

As an added benefit, I have all the previous versions on BOTH computers, so that if I need to revert to an earlier version, it’s there waiting for me. AND I have the luxury of having my files on three drives: desktop, laptop, and thumb drive. No worries about losing my ‘stuff’ anymore. It’s backed up on three drives AND an external HD that backs up my desktop every night.

Did I mention life is good? It’s GREAT.

-Barry

rsync -av --delete othermac:Documents/Great21stCenturyNovel.scriv ~/Documents/

In an open Terminal of course; and you’d need to turn on login sharing in preferences.

The above example would make the current machine up to date with what’s on othermac; so it pulls that mac’s version onto your current machine.

You can push instead by reversing the source and destination, so:

rsync -av --delete ~/Documents/Great21stCenturyNovel.scriv othermac:Documents/

… says the one on this machine is up to date, so update the one on othermac with this.

May not be pretty, but it’s free and already installed, and it’s probably Automatable…

What might be really nice is some kind of integration with a revision control system. :slight_smile:

Hi,

Unless you have very good luck, I would not recommend typing the above command into a Terminal window, using the “–delete” option, each time you wish to synchronize your project.

The “–delete” and “–delete-after” options delete all files at the destination directory that aren’t present in the originating directory. If you accidentally add a slash to the end of the source path ("…scriv/")–an easy thing to do by accident, say with tab-completion–rsync will think you want to replace the destination directory with the contents of the .scriv directory. Thus, in this example you’d be replacing the Documents folder with the contents of your novel/project. Very bad (and permanent).

One fix is to make sure you always specify the complete destination path, e.g.
rsync -av --delete ~/Documents/Great21stCenturyNovel.scriv othermac:Documents/Great21stCenturyNovel.scriv
If it doesn’t exist, rsync will create it.

Another fix is to leave off the “–delete” option if you are running rsync at the commandline. The result is that files deleted from the Scrivener project that no longer belong in the project would not be deleted from the destination copy.

Beyond the above fixes, you probably want to use “–delete-after” to make rsync wait until all new files are copied before deleting the originals), e.g.
rsync -av --delete-after ~/Documents/Great21stCenturyNovel.scriv othermac:Documents/Great21stCenturyNovel.scriv

Having said all this…

…Does someone know of a GUI front end to rsync that might be a safer recommendation for users?

–Bryce

Well, yes, if you do it wrong bad things will happen. :slight_smile: This is the case with everything, so I’d take it as read that if you’re following these instructions you’d do it right. :slight_smile: I’d actually probably put the commands into a script or an alias, make sure they’re right there, and just always call that. I did mention this might be a good candidate for someone who can be bothered to use Automator :slight_smile:

If you don’t use --delete, and otherwise enter the command correctly, the contents of the .scriv package will probably get inconsistent as files inside the package that got deleted by scrivener in normal usage on one machine would be still hanging around when you pull it across to the other; and when you pull the project back the other way, they’ll reappear there too. Unknown what effect that might have on Scrivener, finding those stale files lying around… Potential for ugliness there. The --delete (or --delete-after, it doesn’t really matter) ensures the whole .scriv package is consistent.

(For similar reasons you should do this when Scrivener itself isn’t actually running, or at least hasn’t got the project in question open, on either machine.)

Yep, that would be fine, just more verbose :slight_smile:

Which may be a problem, as described above. Best not.

In fairness, once you’ve started the rsync, the .scriv on the destination should be thought of as being in a broken state until you’ve finished, so where in the process the delete happens is by the by. Think of the whole operation as atomic, and if it fails, try again from the source, which will not have been affected by any of this (unless you put in some of the more insanely dangerous rsync options not mentioned here). For God’s sake, don’t waste time trying to ‘fix’ a half-rsynced .scriv package… Just do the rsync again, correctly this time. :slight_smile:

P.S. I’m actually new to Scrivener, on Day 2 of the trial period; but I’ve been using this with Ulysses for some time, and due to the similar package system it uses, the same issues are sure to apply.

Googling “rsync gui OS X” brought me a page that led me to rsyncx: http://www.versiontracker.com/dyn/moreinfo/macosx/16814 but that looks like it would have some issues. Also arRsync: http://www.bartbusschots.ie/blog/?p=338 but that looks like it’ll have other issues. I suspect neither of them handle rsyncing to a remote host, only around and within filing systems on a single host. I would use neither.

Right but most things will not delete your entire Documents directory due to adding an extra slash to a directory name, an easy thing to do under tab-completion. Even experts are likely to make such an error.

I’m inclined to give people the solution that minimizes this risk, even at the expense of pushing them away from a great expert-level CLI tool such as rsync.

One of these days I will get around to rigging up an Automator workflow that performs this, the most common use of rsync. All it requires is prompting the user for a destination directory or server.

–Bryce

Thanks guys for the suggestion about using rsync but I’m happy using the thumb drive as mentioned earlier in this thread. No hassles, no danger, just pure ease of use.
I’m a very happy camper

Thanks again.

-Barry

An improvement on the thumb drive (I keep one anchored to the radiator so it doesn’t get lost) for wireless Internet-connected laptops is OmniDrive (omnidrive.com). These guys are handing out what amount to free 1GB “virtual thumbdrives” – IMHO a much safer place to keep your stuff.

I trust my Omnidrive, but if you’re worried about privacy, create a small crypto disk image on your local hard drive, back up to that and then sync the disk image.


Chris

Here’s another vote for the thumbdrive! I also use a tiny USB drive to sync my computers. It has two more advantages I haven’t seen mentioned. The first is the explicit time-stamp information Scriv adds to the filename when you save a file as a backup. The second is (perhaps obviously) that the USB drive itself is another backup of the file, in case your laptop’s copy goes astray for any reason (the online services offer this too, but they’re only useful if you have a live net connection when you’re saving).

-Andrew

Foldershare, it’s nice and automatic, cross-platform, free, and owned by Microsoft of all companies. The cool thing it seems to completely ignore firewalls so you can access your homefiles from anywhere.

I aggree, flash drives (or an mp3 player) are super-useful. I’ve tried simply working on a project directly on my flash drive, but it chugs along, presumably because of the way Scriv writes/saves to file as you go (i think). I’m also limited to USB 1 on my iBook. Has anyone tried this with USB 2 and found satisfactory performance?

Just curious, has anyone tried this Automator script for synching folders and would it work between two machines?

apple.com/downloads/macosx/a … lders.html

Keith, Amber:

Of the solutions mentioned here, do you have an opinion on which would be safe to SYNC Scrivener project files:

Filesync1
omnidrive.com
foldershare
Also, I sometimes use a LaCie’s free SilverKeeper

AndrewG, when you say you’re “syncing” to a thumbdrive, are you using a program to actually “sync” the files, or just dragging them back and forth? If so, which program do you use, and how does it work?

I’m too afraid of dragging files back and forth that one day I will mistakenly start working on the wrong file, and there will be no way to sync the two “active” files making me loose a day or more of work. For now, I’m keeping the master on my laptop, and when I need to work on my desktop, I connect to my laptop via ethernet and access the files via filesharing. The first time I tried this it was funky, but it has worked flawlessly since.

Michael