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.