Mercurial > hg
view tests/printenv.py @ 15933:b8696a6676be
phases: only synchronize on common changeset when push fails
If push failed we should not expect the pushed changeset to exist on remote.
The common set before the push is used for phase related operation instead of
common + missing.
Note:
* We still pull phase data even if push fails
* We still try to push data even if push fails (same than bookmark)
author | Pierre-Yves David <pierre-yves.david@logilab.fr> |
---|---|
date | Thu, 19 Jan 2012 16:09:43 +0100 |
parents | 682edefe7dbb |
children | c19113e842d3 |
line wrap: on
line source
# simple script to be used in hooks # # put something like this in the repo .hg/hgrc: # # [hooks] # changegroup = python "$TESTDIR"/printenv.py <hookname> [exit] [output] # # - <hookname> is a mandatory argument (e.g. "changegroup") # - [exit] is the exit code of the hook (default: 0) # - [output] is the name of the output file (default: use sys.stdout) # the file will be opened in append mode. # import os import sys try: import msvcrt msvcrt.setmode(sys.stdin.fileno(), os.O_BINARY) msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY) msvcrt.setmode(sys.stderr.fileno(), os.O_BINARY) except ImportError: pass exitcode = 0 out = sys.stdout name = sys.argv[1] if len(sys.argv) > 2: exitcode = int(sys.argv[2]) if len(sys.argv) > 3: out = open(sys.argv[3], "ab") # variables with empty values may not exist on all platforms, filter # them now for portability sake. env = [k for k, v in os.environ.iteritems() if k.startswith("HG_") and v] env.sort() out.write("%s hook: " % name) for v in env: out.write("%s=%s " % (v, os.environ[v])) out.write("\n") out.close() sys.exit(exitcode)