Skip to main content

A simple script & library to handle syncing remote mercuial repositories

Project description

When developing a cross platform application it can be neccesary to transfer changes between different machines in order to test changes out. Mercurials push & pull help to make this process simpler, however keeping your repositories in sync is not neccesarily a single step process. Particularly if you rebase and collapse changesets quite frequently, and especially if you like to make use of the mq extension.

This script intends to make the process of syncing two mercurial repositories to exactly the same point as easy as possible, by taking care of all the steps neccesary in a single command.

Currently it can:

  • Clone a new remote repository

  • Refresh the local mq patch

  • Strip superflous changesets from the remote repository

  • Push to and update the remote repository

  • Commit to the local mq repository

  • Push to and update the remote mq repository

  • Ensure the remote repository has the correct mq patches pushed

Requirements

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

Synchg depends on these python packages:

It also requires the mq mercurial extension is enabled on any remote machines it is used with.

Installation

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

pip install synchg

Preparing Repositories

Prior to running synchg for the first time it is recommended that you delete any remote repositories you intend to use it with, and allow synchg to perform the initial clone. If you intend to use mq patches with synchg, you should also ensure you have run hg init --mq on your local repositories.

It should be noted that synchg regards remote repositories as “slaves” and will strip out any changesets it finds that are not in the local repository. You will be prompted before this happens, but the script will be unable to continue if you don’t answer yes. This is to avoid creating additional heads on the remote.

Usage

Synchg 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)

More options can be found by running:

synchg --help

On first run, you will be prompted for some configuration options:

  • Remote source directory - this is the path on the remote under which all your repositories should be found

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.2.tar.gz (10.5 kB view details)

Uploaded Source

Built Distribution

SyncHg-0.9.2-py2.7.egg (21.4 kB view details)

Uploaded Source

File details

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

File metadata

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

File hashes

Hashes for SyncHg-0.9.2.tar.gz
Algorithm Hash digest
SHA256 970c3f5cdd8bb24e223765537ed249cfc31a77c3f68559c4fd3289765232be03
MD5 917937b6fd77fbaf7317ef67dce6020c
BLAKE2b-256 b8871488be681bc91b15a42b18a56d4bd9d35d86fe545de3750b1a1716c2846e

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for SyncHg-0.9.2-py2.7.egg
Algorithm Hash digest
SHA256 d2e7f928f6f9184b7b57cbb5e9f2fa29de564ad8c1ccb05cc3451aa99df90a7f
MD5 e2c59c853a94c7251bb32e8a9b8943da
BLAKE2b-256 94338d204ec603cc9c39d27c02bfb0b0fa7e17c370395d6488d0e0ab86d2a59f

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