Sparkleshare to sync org files ============================== Last edited: $Date: 2021/03/27 13:46:10 $ Org mode on Debian ------------------ One of my laptops runs Debian, on this machine I have installed Emacs to use org mode. For this I have created a directory $HOME/.org, and set this in my .emacs file. (setq org-directory "~/.org/") (setq org-default-notes-file (concat org-directory "/todo.org")) Sparkleshare ------------ [Sparkleshare](http://www.sparkleshare.org/) is a great solution to automatically sync files. It uses a standard Git server as back-end. Installing Sparkleshare ----------------------- On Debian, installing Sparkleshare is just a matter of apt-get install sparkleshare ### Sparkleshare and the i3 window manager I am running the i3 window manager and when I start Sparkleshare, an applet shows up in the systemtray. Migrating to Sparkleshare -------------------------- ### Preparing Gitolite The first time Sparkleshare is started, it creates a new ssh key. The Sparkleshare applet in your system tray has a menu entry called "Computer ID". This is the publlc key of that newly generated ssh key. Copy this key to a file in your Gitolite keys directory. Open the gitolite.conf file and add this key with RW+ rights to a repo. I used my orgfiles-repo for this. Commit the key and config change and push this to the Gitolite server in the normal way. ### Adding the Gitolite repo to Sparkleshare Open the menu from the Sparkleshare applet and open "Sync remote project". In the address field add the following: ssh://gitolite-user@gitoliteurl:port Where: - gitolite-user: the username for Gitolite, perhaps git or gitolite3 - gitoliteurl: the url of ip address of your gitolite server - :port: if gitolite doesn't run on port 22, than define the port here In the remote path field add the name of the existing repo (where you just have added RW+ rights for the Sparkleshare ssh key). Check the box 'fetch prior revisions' if you have indeed an existing repository with already some committed files. Hit the "Add" button and be prepared for a very long wait. Sparkleshare is now doing its magic, but that takes time. Symlink your org directory to the new location ---------------------------------------------- Sparkleshare has created a directory in your $HOME directory, called SparkleShare. In here you find a subdirectory with the name of your Git server or Gitolite server, and in there you find the name of your Git repository, and in there the files that Sparkleshare has just checked out of your Git repository. If everything worked out fine, you can remove your current org directory and symlink it to the new location in your $HOME/SparkleShare directory. Automatically start Sparkleshare -------------------------------- I have added a line to my .xsessionrc to start Sparkleshare automatically when starting X. sparkleshare & Automated check in of your work ------------------------------- When you add content to your org files, add new org files to your org directory or change existing content, Sparkleshare will take care of the changes and submit those to your Git repository in Gitolite.