contrib/hammerclient.py
author Pierre-Yves David <pierre-yves.david@octobus.net>
Wed, 19 Feb 2020 01:35:23 +0100
changeset 5139 19b8ffd23795
parent 4809 f97379faefa3
permissions -rwxr-xr-x
topic: option to hide topic changesets to plain client This is the first version of an option that make topic changeset hidden to client without the extension. It might become the default in the future.

#!/usr/bin/env python
import os
import sys
import subprocess

if len(sys.argv) < 2:
    execname = os.path.basename(sys.argv[0])
    sys.stderr.write("usage: %s CLIENT_ID\n" % execname)

client_id = sys.argv[1]

subprocess.check_call(['hg', 'branch', "--force", "hammer-branch-%s" % client_id])

while True:
    subprocess.check_call([
        'hg', 'commit',
        "--config", "ui.allowemptycommit=yes",
        "--message", "hammer-%s" % client_id,
    ])
    nodeid = subprocess.check_output([
        'hg', 'log', '--rev', '.', '--template', '{node}'
    ])
    subprocess.check_call([
        'hg', 'debugobsolete', ''.join(reversed(nodeid)), nodeid
    ])
    subprocess.check_call(['hg', 'pull'])
    subprocess.check_call(['hg', 'push', '--force'])