Imported from Bitbucket
ignore rules, binary rules, make topic less exploitable
added configurability for large file threshold and large file extensions
readme and a bit less noise

heads

tip
browse log

clone

read-only
https://hg.sr.ht/~hww3/quartermaster
read/write
ssh://hg@hg.sr.ht/~hww3/quartermaster
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