=== hgsync === Synchronizing hg repositories in different locations. In my working environment we still use DOS a lot to modify code hosted on Novell (with some arcane Linux distros) servers. Same project is hosted on different servers, and has to be synchronized to each other. All the projects are shared with Samba service. There is a Windows server connecting to all the Samba shares. The synchronizing script runs on the Windows Server. Currently we use a simple copy-to-all method to keep the projects synchronized. This script is an attempt to integrate version control with directory synchronizing . It provides a simple way to turn the project directories into hg repos, synchronizing projects among different locations, and also tracks project changes. Since there is no way to communicate directly between DOS and Linux, simple flag files are used to exchange infomation. The server side script monitors for flag changes, then takes action specified by the flags. Currently only simple auto committing, synchronizing, and auto branching are supported. === Files === HgMon.py -- The main app hgcmd.py -- mercurial commands Config.yaml -- Project directory configurations logconfig.ini -- logging configurations hgrc.template -- hgrc used by all repos hgignore.template -- .hgignore used by all repos === Usage === 1. Modify Config.yaml to set project directories. 2. Run Hgmon.py on sync server 3. The project directories will be initiated as hg repos. 4. Now you can put certain flags the repos to control the synchronization. Supported flags: "SYNC!" -- Command Sync. If the flag is detected, the content of the flag is parsed and then removed, then commit and sync will be executed. "LOCKED!" -- Command locked. If the flag is present in the project, the project will not be updated or synchronized. "DOING" -- Status synchronizing. The flag will appear during program sync, will be disappeard after sync finished.