mirror of
https://github.com/facebook/sapling.git
synced 2024-12-28 15:44:27 +03:00
e1ad0df320
Summary: The `notbackedup()` revset is used as part of `summary` that prints information at the end of `smartlog`. It can take hundreds of milliseconds if there are many heads. Detect segmented changelog and use a fast path for it. Practically this reduces `summary` from 594ms to 91ms for me: With segmented changelog (doublewrite backend) and new code path: 91 \ summary status.py:23 2 \ currentworkspace workspace.py:121 3 | _get (2 times) workspace.py:110 3 | read (2 times) config.py:195 3 | parse (2 times) config.py:116 2 | compile (14 times) util.py:1464 3 \ __init__ syncstate.py:44 82 \ revs localrepo.py:1203 With revlog and old code path: 594 \ summary status.py:23 2 \ currentworkspace workspace.py:121 4 | _get (2 times) workspace.py:110 3 | read (2 times) config.py:195 3 | parse (2 times) config.py:116 3 | compile (14 times) util.py:1464 3 \ __init__ syncstate.py:44 46 \ revs localrepo.py:1203 539 \ _iterfilter smartset.py:647 538 | <lambda> (1565 times) commitcloud/__init__.py:371 537 | __contains__ (1565 times) smartset.py:1039 533 | _consumegen (17355 times) smartset.py:1122 Reviewed By: markbt Differential Revision: D23036075 fbshipit-source-id: 09dcc34f34a42814c6526e558d40b4d75ba9d75f
72 lines
2.9 KiB
INI
72 lines
2.9 KiB
INI
[flake8]
|
||
select =
|
||
F401, # module imported but unused
|
||
F402, # import module from line N shadowed by loop variable
|
||
F403, # ‘from module import *’ used; unable to detect undefined names
|
||
F404, # future import(s) name after other statements
|
||
F405, # name may be undefined, or defined from star imports: module
|
||
F406, # ‘from module import *’ only allowed at module level
|
||
F407, # an undefined __future__ feature name was imported
|
||
F601, # dictionary key name repeated with different values
|
||
F602, # dictionary key variable name repeated with different values
|
||
F621, # too many expressions in an assignment with star-unpacking
|
||
F622, # two or more starred expressions in an assignment (a, *b, *c = d)
|
||
F631, # assertion test is a tuple, which are always True
|
||
F701, # a break statement outside of a while or for loop
|
||
F702, # a continue statement outside of a while or for loop
|
||
F703, # a continue statement in a finally block in a loop
|
||
F704, # a yield or yield from statement outside of a function
|
||
F705, # a return statement with arguments inside a generator
|
||
F706, # a return statement outside of a function/method
|
||
F707, # an except: block as not the last exception handler
|
||
F811, # redefinition of unused name from line N
|
||
F812, # list comprehension redefines name from line N
|
||
F821, # undefined name name
|
||
F822, # undefined name name in __all__
|
||
F823, # local variable name … referenced before assignment
|
||
F831, # duplicate argument name in function definition
|
||
F841, # local variable name is assigned to but never used
|
||
E101, # indentation contains mixed spaces and tabs
|
||
E112, # expected an indented block
|
||
E113, # unexpected indentation
|
||
E133, # closing bracket is missing indentation
|
||
E223, # tab before operator
|
||
E224, # tab after operator
|
||
E242, # tab after ‘,’
|
||
E272, # multiple spaces before keyword
|
||
E273, # tab after keyword
|
||
E274, # tab before keyword
|
||
E304, # blank lines found after function decorator
|
||
# BLACK can make lines longer than 80 characters
|
||
# E501, # line too long (82 > 79 characters)
|
||
E703, # statement ends with a semicolon
|
||
E704, # multiple statements on one line (def)
|
||
E711, # comparison to None should be ‘if cond is None:’
|
||
E712, # comparison to True should be ‘if cond is True:’ or ‘if cond:’
|
||
E714, # test for object identity should be ‘is not’
|
||
E742, # do not define classes named ‘l’, ‘O’, or ‘I’
|
||
E743, # do not define functions named ‘l’, ‘O’, or ‘I’
|
||
E901, # SyntaxError or IndentationError
|
||
E902, # IOError
|
||
W191, # indentation contains tabs
|
||
W291, # trailing whitespace
|
||
W292, # no newline at end of file
|
||
W504, # line break after binary operator
|
||
W601, # .has_key() is deprecated, use ‘in’
|
||
W602, # deprecated form of raising exception
|
||
W603, # ‘<>’ is deprecated, use ‘!=’
|
||
W604, # backticks are deprecated, use ‘repr()’
|
||
W605, # invalid escape sequence ‘x’
|
||
|
||
# dageval defined names
|
||
builtins =
|
||
ancestors,
|
||
draft,
|
||
gcaall,
|
||
heads,
|
||
headsancestors,
|
||
obsolete,
|
||
parents,
|
||
public,
|
||
roots,
|