stream-clone: add a explicit set list requirements relevant to stream clone
This set explicitly lists all the requirements that "stream clone" will
preserve. Any other one will not be preserved.
The role of listing the relevant one was previously filled by
`repo.supportedformat`, but it seems clearer to use that such global and
explicit set. The `repo.supportedformat` attribute will be cleaned up in a later
changeset
The true meaning of `repo.supportedformat` vs `repo._basesupported` was lost
over time so, the content is currently bad. For example, `dirstate-v2` is
currently considered relevant to the stream clone, or internal phase is
missing. We kept the same content in this changeset and we will fix them later.
Differential Revision: https://phab.mercurial-scm.org/D12032
from __future__ import absolute_import, print_function
import os
from mercurial import (
dispatch,
ui as uimod,
)
from mercurial.utils import stringutil
# ensure errors aren't buffered
testui = uimod.ui()
testui.pushbuffer()
testui.writenoi18n(b'buffered\n')
testui.warnnoi18n(b'warning\n')
testui.write_err(b'error\n')
print(stringutil.pprint(testui.popbuffer(), bprefix=True).decode('ascii'))
# test dispatch.dispatch with the same ui object
hgrc = open(os.environ["HGRCPATH"], 'wb')
hgrc.write(b'[extensions]\n')
hgrc.write(b'color=\n')
hgrc.close()
ui_ = uimod.ui.load()
ui_.setconfig(b'ui', b'formatted', b'True')
# we're not interested in the output, so write that to devnull
ui_.fout = open(os.devnull, 'wb')
# call some arbitrary command just so we go through
# color's wrapped _runcommand twice.
def runcmd():
dispatch.dispatch(dispatch.request([b'version', b'-q'], ui_))
runcmd()
print("colored? %s" % (ui_._colormode is not None))
runcmd()
print("colored? %s" % (ui_._colormode is not None))