##// END OF EJS Templates
commands: use the new API to access hidden changesets in various commands...
commands: use the new API to access hidden changesets in various commands In previous patches, we have added an internal API to unhide hidden changesets. This patch makes the following command use that api in nowarn mode i.e. there will be no warning while accessing hidden changesets. cat, diff, export, files, heads, identify, log, manifest, parents, status This patch also adds test demonstarting the behaviour. .. feature:: Accessing hidden changesets Set config option 'experimental.directaccess = True' to access hidden changesets from read only commands. Differential Revision: https://phab.mercurial-scm.org/D1735

File last commit:

r28353:cd03fbd5 default
r35513:b378a3d8 @14 default
Show More
debugcmdserver.py
49 lines | 1.2 KiB | text/x-python | PythonLexer
Idan Kamara
contrib: add a script to help diagnose raw output of the cmdserver
r15259 #!/usr/bin/env python
#
# Dumps output generated by Mercurial's command server in a formatted style to a
# given file or stderr if '-' is specified. Output is also written in its raw
# format to stdout.
#
# $ ./hg serve --cmds pipe | ./contrib/debugcmdserver.py -
# o, 52 -> 'capabilities: getencoding runcommand\nencoding: UTF-8'
Pulkit Goyal
debugcmdserver: use absolute_import and print_function
r28353 from __future__ import absolute_import, print_function
import struct
import sys
Idan Kamara
contrib: add a script to help diagnose raw output of the cmdserver
r15259
if len(sys.argv) != 2:
Pulkit Goyal
debugcmdserver: use absolute_import and print_function
r28353 print('usage: debugcmdserver.py FILE')
Idan Kamara
contrib: add a script to help diagnose raw output of the cmdserver
r15259 sys.exit(1)
outputfmt = '>cI'
outputfmtsize = struct.calcsize(outputfmt)
if sys.argv[1] == '-':
log = sys.stderr
else:
log = open(sys.argv[1], 'a')
def read(size):
data = sys.stdin.read(size)
if not data:
Brodie Rao
cleanup: "raise SomeException()" -> "raise SomeException"
r16687 raise EOFError
Idan Kamara
contrib: add a script to help diagnose raw output of the cmdserver
r15259 sys.stdout.write(data)
sys.stdout.flush()
return data
try:
while True:
header = read(outputfmtsize)
channel, length = struct.unpack(outputfmt, header)
log.write('%s, %-4d' % (channel, length))
if channel in 'IL':
log.write(' -> waiting for input\n')
else:
data = read(length)
log.write(' -> %r\n' % data)
log.flush()
except EOFError:
pass
finally:
if log != sys.stderr:
log.close()