org: Uploading files
13.2 Uploading files
====================
For those people already utilizing third party sync tools such as
‘rsync’ or ‘unison’, it might be preferable not to use the built in
remote publishing facilities of Org mode which rely heavily on Tramp.
Tramp, while very useful and powerful, tends not to be so efficient for
multiple file transfer and has been known to cause problems under heavy
usage.
Specialized synchronization utilities offer several advantages. In
addition to timestamp comparison, they also do content and
permissions/attribute checks. For this reason you might prefer to
publish your web to a local directory (possibly even in place with your
Org files) and then use ‘unison’ or ‘rsync’ to do the synchronization
with the remote host.
Since Unison (for example) can be configured as to which files to
transfer to a certain remote destination, it can greatly simplify the
project publishing definition. Simply keep all files in the correct
location, process your Org files with ‘org-publish’ and let the
synchronization tool do the rest. You do not need, in this scenario, to
include attachments such as ‘jpg’, ‘css’ or ‘gif’ files in the project
definition since the 3rd party tool syncs them.
Publishing to a local directory is also much faster than to a remote
one, so that you can afford more easily to republish entire projects.
If you set ‘org-publish-use-timestamps-flag’ to ‘nil’, you gain the main
benefit of re-including any changed external files such as source
example files you might include with ‘#+INCLUDE:’. The timestamp
mechanism in Org is not smart enough to detect if included files have
been modified.