SparkleShare uses a small script that handles update notifications between clients. By default it uses the one running on notifications.sparkleshare.org. The only information sent to this service is a hash of a folder identifier and a hash of the current revision. The service then tells the other connected clients that are subscribed to a folder that they can pull new changes from wherever your repository is hosted. This allows SparkleShare clients to sync new changes instantly, instead of polling with potentially long delays (up to 10 minutes).
Having a centralised service to handle notifications is needed for a pleasant user experience. If you do feel uncomfortable with this you are able to run your own. Just run https://github.com/travisghansen/fanout/ on your own server and edit the SparkleShare configuration (in
~/.config/sparkleshare/config.xml) to point to it:
<sparkleshare> // Use your personal notification service globally... <announcements_url>tcp://your-server:1234</announcements_url> // ...or for a single folder <folder> <name>Stuff</name> <announcements_url>tcp://your-server:1234</announcements_url> </folder> </sparkleshare>
There's a git hook that allows you to do manual pushes to the repo, and the SparkleShare clients will still pick it up: https://github.com/hbons/sparkleshare-git-hook