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.