QuarterMaster is a tool for synchronizing datasets among computers. In concept
it is similar to Dropbox or SparkleShare, but differs in one or more of the
following ways:
- Supports multiple backend repository types, such as DVCS (Mercurial currently)
- Supports multiple synchronized folders (Foot Lockers)
- Uses XMPP or MQTT for synchronization messages
- Does not require a UI and can run on Linux, Solaris, MacOSX and Windows
- You can host your own repository and XMPP server, or use a hosted solution
such as Jabber (for XMPP), Mosquitto (for MQTT) or Github/Bitbucket (for
the repository).
- Provides a command line control utility that can be used to monitor and
control the daemon.
- Lightweight: written in Pike and uses ssh and hg/git/etc already present on
your system and requires no other binary modules
- Uses OS provided mechanisms (iNotify, WNotify, FSEvents) for file change
notification to keep CPU utilization low.
- Uses plain repositories, so you can operate directly on the repository
exclusive of QuarterMaster.
- Supports managing large binary files using the LargeFiles extension built into
mercurial.
- Support for configurable ignore rules and rules for identifying binary data.
- Includes a management script for setting up a server to host the centralized
repository host, as well as creating new footlockers on that server.
Current drawbacks (aka the TODO list):
- Currently supports Mercurial backends only.
- A tool for setting up new Foot Lockers on individual machines would be nice.
- No GUI (though the configuration format is a simple INI style).
- Error handling is somewhat immature and has not been tested in all possible
failure scenarios.
- Need to queue up change notices when XMPP/MQTT are unavailable.
Requirements:
- Runs on Linux, MacOSX, Solaris/Illumos and Windows
- Pike 8.0 - Native packages available for most OS*
- Your chosen DCVS (hg, git) and ssh already installed
- One or more repositories for use with QuarterMaster, with SSH keys set
up and available
- A XMPP (Jabber) account or MQTT server for use with QuarterMaster (multiple
FootLockers may share a single account).
Usage:
ssh-keygen -t rsa -f $HOME/.ssh/id_rsa_quartermasterssh-keygen -t rsa -f $HOME/.ssh/id_rsa_quartermaster
pike -MMODULE quartermaster.pike --help