Skip to main content

A simple script & library to handle syncing remote mercuial repositories

Project description

Ever had to keep two mercurial repositories on different machines in sync? Mercurials push & pull help to make this fairly easy, but if you make use of mercurial queues or the histedit extension then it can quickly become tedious. That’s where synchg comes in.

Synchg intends to make syncing two mercurial repositories as simple as possible. Simply run a command, and synchg will take care of the rest.

Requirements

Python 2.7 & Mercurial 2.3 are recommended, though others will probably work.

Synchg depends on these python packages:

It also requires:

  • An ssh client on the path (putty on windows, openssh compatible on other platforms)

  • Access to an SSH server on the remote machine(s)

  • An ssh private key loaded in an ssh agent (pagaent on windows, ssh-agent on other platforms)

  • That the mq extension is enabled on the remote machine(s)

Installation

Synchg and it’s python dependencies can be installed via pip:

$ pip install synchg

Using SyncHg

Before using synchg on a repository you should ensure that your environment is set up correctly. If you intend to use mq patches with synchg, then you should run hg init --mq on each local repository before you attempt to use it with synchg.

It’s recommended that you use synchg to make the initial clone to your remote machine. This way it can take steps to add necessary settings to the local repository. However, if you wish to use synchg with an existing clone of your repository, then read the section below entitled Using With Existing Clones.

Running The Script

The synchg script should be run from the command line:

$ synchg remote_host [local_path=None]

Where remote_host is the host you wish to sync with and local_path is the optional path to the local mercurial repository (if missing, the current directory will be assumed)

Information on more options can be found by running:

$ synchg --help

Configuration

On first run of synchg you will be prompted with some configuration options:

Remote source directory

This is the path on the remote under which all your repositories should be found. For example, if you have repositories at /repo/one/ and /repo/two/ then you would set this to /repo/

If you want to change the configuration of synchg, then simply run synchg -c to run the config process again.

Using With Existing Clones

Though it’s recommended that you allow synchg to perform the initial clone of a repository, it is possible to use it with existing clones. You simply need to make sure that the remote repository is listed as a remote in the .hgrc for your local repository. The remote should be named using the hostname of the remote machine.

If you intend to use mq patches, this will also need to be done with the mq repository.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

SyncHg-0.9.7.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

SyncHg-0.9.7-py2.7.egg (19.7 kB view details)

Uploaded Source

File details

Details for the file SyncHg-0.9.7.tar.gz.

File metadata

  • Download URL: SyncHg-0.9.7.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for SyncHg-0.9.7.tar.gz
Algorithm Hash digest
SHA256 6c7ac19c94ef14f755c97d6e870edea27e56b4a733c7d1d48f2d9f57ba858aeb
MD5 d73e81be571b7f0680c0e7a80e2f28b2
BLAKE2b-256 27a64250fa09124d448e3d75ec7effaa5bec9edc1a2fa029ecf6cc5391e85d3d

See more details on using hashes here.

File details

Details for the file SyncHg-0.9.7-py2.7.egg.

File metadata

  • Download URL: SyncHg-0.9.7-py2.7.egg
  • Upload date:
  • Size: 19.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for SyncHg-0.9.7-py2.7.egg
Algorithm Hash digest
SHA256 0165b3a5d0fc67fd90e807aef1339d9ed7169f7fedc9c39ce493248e0cd8fa70
MD5 e1ff174e8f994a890a52d3068aa95d7b
BLAKE2b-256 ac0059228ca44885f0499ce4db01e57756a8a25fe0a9acb1fbfac3a21415d5b7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page