##// END OF EJS Templates
merge: don't report progress for dr/rd actions...
merge: don't report progress for dr/rd actions It is easier to reason about certain algorithms in terms of a file->action mapping than the current action->list-of-files. Bid merge is already written this way (but with a list of actions per file), and largefiles' overridecalculateupdates() will also benefit. However, that requires us to have at most one action per file. That requirement is currently violated by 'dr' (divergent rename) and 'rd' (rename and delete) actions, which can exist for the same file as some other action. These actions are only used for displaying warnings to the user; they don't change anything in the working copy or the dirstate. In this way, they are similar to the 'k' (keep) action. However, they are even less action-like than 'k' is: 'k' at least describes what to do with the file ("do nothing"), while 'dr' and 'rd' or only annotations for files for which there may exist other, "real" actions. As a first step towards separating these acitons out, stop including them in the progress output, just like we already exclude the 'k' action.

File last commit:

r22762:05b3238b default
r23524:a1a7c94d default
Show More
hghave
77 lines | 2.1 KiB | text/plain | TextLexer
#!/usr/bin/env python
"""Test the running system for features availability. Exit with zero
if all features are there, non-zero otherwise. If a feature name is
prefixed with "no-", the absence of feature is tested.
"""
import optparse
import sys
import hghave
checks = hghave.checks
def list_features():
for name, feature in sorted(checks.iteritems()):
desc = feature[1]
print name + ':', desc
def test_features():
failed = 0
for name, feature in checks.iteritems():
check, _ = feature
try:
check()
except Exception, e:
print "feature %s failed: %s" % (name, e)
failed += 1
return failed
parser = optparse.OptionParser("%prog [options] [features]")
parser.add_option("--test-features", action="store_true",
help="test available features")
parser.add_option("--list-features", action="store_true",
help="list available features")
parser.add_option("-q", "--quiet", action="store_true",
help="check features silently")
if __name__ == '__main__':
options, args = parser.parse_args()
if options.list_features:
list_features()
sys.exit(0)
if options.test_features:
sys.exit(test_features())
quiet = options.quiet
failures = 0
def error(msg):
global failures
if not quiet:
sys.stderr.write(msg + '\n')
failures += 1
for feature in args:
negate = feature.startswith('no-')
if negate:
feature = feature[3:]
if feature not in checks:
error('skipped: unknown feature: ' + feature)
sys.exit(2)
check, desc = checks[feature]
try:
available = check()
except Exception, e:
error('hghave check failed: ' + feature)
continue
if not negate and not available:
error('skipped: missing feature: ' + desc)
elif negate and available:
error('skipped: system supports %s' % desc)
if failures != 0:
sys.exit(1)