tests/fakemergerecord.py
author Yuya Nishihara <yuya@tcha.org>
Wed, 26 Sep 2018 20:53:59 +0900
branchstable
changeset 39807 e5724be689b3
parent 36480 4dc6f0905722
child 43076 2372284d9457
permissions -rw-r--r--
procutil: compare fd number to see if stdio protection is needed (issue5992) When I wrote this function for commandserver at 69f86b937035, testing object identity was suffice, and I was sloppy enough not to compare fileno() values. However, it doesn't work in chg session because chgserver reopens stdio to apply new buffering mode. This patch partially fixes the issue 5992. Still we have another problem in chgui._runsystem().

# Extension to write out fake unsupported records into the merge state
#
#

from __future__ import absolute_import

from mercurial import (
    merge,
    registrar,
)

cmdtable = {}
command = registrar.command(cmdtable)

@command(b'fakemergerecord',
         [(b'X', b'mandatory', None, b'add a fake mandatory record'),
          (b'x', b'advisory', None, b'add a fake advisory record')], '')
def fakemergerecord(ui, repo, *pats, **opts):
    with repo.wlock():
        ms = merge.mergestate.read(repo)
        records = ms._makerecords()
        if opts.get('mandatory'):
            records.append((b'X', b'mandatory record'))
        if opts.get('advisory'):
            records.append((b'x', b'advisory record'))
        ms._writerecords(records)