How can I synchronize a directory on my Windows system to a remote Linux machine, and then update the remote copy efficiently when files in the directory are changed? Nowadays a common answer is to use Dropbox or the like - install it on both systems and let it do its magic. It works, but what are other options without using a third-party serivce?
One way is to set up a git repository on Linux, a working directory on Windows and then git push
changes to the repo. A drawback is that a commit must be done before each synchronization, and every version of each file will be stored in the repository which is not always necessary.
rsync
Another approach is to use the rsync tool originally created for Unix-like OS but a couple of Windows ports exist such as cwRsync (proprietary) and DeltaCopy (presumably open source). Both are cygwin-based, although do not require a complete cygwin installation being bundled with the required dlls.