Mercurial > evolve
view contrib/hammerclient.py @ 6130:cd07d6bd4e2a
cmdrewrite: a new `hg fixup` command
This new command can be used to amend specific revisions with working copy
changes.
Implementation-wise what it basically does is:
1) commit working directory changes
2) relocate the new commit onto the target commit
3) fold them into one.
After the run, the working directory parent will be the obsoleted changeset
created in step 1 and descendants of the target will become orphans.
author | Sushil khanchi <sushilkhanchi97@gmail.com> |
---|---|
date | Wed, 03 Nov 2021 22:59:17 +0530 |
parents | f97379faefa3 |
children |
line wrap: on
line source
#!/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'])