annotate tests/README @ 23575:a2f139d25845

subrepo: drop the 'ui' parameter to archive() The current state of subrepo methods is to pass a 'ui' object to some methods, which has the effect of overriding the subrepo configuration since it is the root repo's 'ui' that is passed along as deep as there are subrepos. Other subrepo method are *not* passed the root 'ui', and instead delegate to their repo object's 'ui'. Even in the former case where the root 'ui' is available, some methods are inconsistent in their use of both the root 'ui' and the local repo's 'ui'. (Consider hg._incoming() uses the root 'ui' for path expansion and some status messages, but also calls bundlerepo.getremotechanges(), which eventually calls discovery.findcommonincoming(), which calls setdiscovery.findcommonheads(), which calls status() on the local repo 'ui'.) This inconsistency with respect to the configured output level is probably always hidden, because --verbose, --debug and --quiet, along with their 'ui.xxx' equivalents in the global and user level hgrc files are propagated from the parent repo to the subrepo via 'baseui'. The 'ui.xxx' settings in the parent repo hgrc file are not propagated, but that seems like an unusual thing to set on a per repo config file. Any 'ui.xxx' options changed by --config are also not propagated, because they are set on repo.ui by dispatch.py, not repo.baseui. The goal here is to cleanup the subrepo methods by dropping the 'ui' parameter, which in turn prevents mixing subtly different 'ui' instances on a given subrepo level. Some methods use more than just the output level settings in 'ui' (add for example ends up calling scmutil.checkportabilityalert() with both the root and local repo's 'ui' at different points). This series just goes for the low hanging fruit and switches methods that only use the output level. If we really care about not letting a subrepo config override the root repo's output level, we can propagate the verbose, debug and quiet settings to the subrepo in the same way 'ui.commitsubrepos' is in hgsubrepo.__init__. Archive only uses the 'ui' object to call its progress() method, and gitsubrepo calls status().
author Matt Harbison <matt_harbison@yahoo.com>
date Sat, 13 Dec 2014 14:53:46 -0500
parents 1de6e7e1bb9f
children 4b0fc75f9403
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
332
6c869059beb4 testing fixups
mpm@selenic.com
parents: 331
diff changeset
1 To run the tests, do:
6c869059beb4 testing fixups
mpm@selenic.com
parents: 331
diff changeset
2
6c869059beb4 testing fixups
mpm@selenic.com
parents: 331
diff changeset
3 cd tests/
2207
8a2a7f7d9df6 Delete the shell version of run-tests
Stephen Darnell <stephen@darnell.plus.com>
parents: 1933
diff changeset
4 python run-tests.py
332
6c869059beb4 testing fixups
mpm@selenic.com
parents: 331
diff changeset
5
8936
1de6e7e1bb9f change wiki/bts URLs to point to new hostname
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 3934
diff changeset
6 See http://mercurial.selenic.com/wiki/WritingTests for
3934
d0bbd8ee50c7 Move test suite docs to the wiki
Matt Mackall <mpm@selenic.com>
parents: 3199
diff changeset
7 more information on writing tests.