tests/fakemergerecord.py
author Eamonn Kent <ekent@fb.com>
Mon, 09 Oct 2017 10:09:36 -0700
changeset 34565 4aa57627692a
parent 32376 46ba2cdda476
child 36211 8173eeb69fb3
permissions -rw-r--r--
fsmonitor: add new watchman notifications to fsmonitor extension The fsmonitor extension currently sends state-enter and state-leave notifications to watchman on the update operation. This commit creates additional notifications for the following events : - transaction creation and commit/abort. A state-enter notification will be sent when a transaction is created. It will provide the working copy parent's hash. A state-leave notification will be sent when the transaction is committed or aborted. It will provide the working copy parent's hash. - calls to set-parent will cause state-enter and state-leave notifications to be sent. The state-enter notification will be sent prior to the set-parent operation and the working copy parent's hash will be provided at this time. The state-leave notification will be sent after the set-parent operation completes providing the working copy parents hash. Test Plan: tested on dev server to check that necessary notifications were sent/received Differential Revision: https://phab.mercurial-scm.org/D989

# 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('fakemergerecord',
         [('X', 'mandatory', None, 'add a fake mandatory record'),
          ('x', 'advisory', None, '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(('X', 'mandatory record'))
        if opts.get('advisory'):
            records.append(('x', 'advisory record'))
        ms._writerecords(records)