tests/test-check-pylint.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Fri, 05 Apr 2024 11:05:54 +0200
changeset 51576 de5bf3fe0233
parent 49792 4658f5e67e4e
permissions -rw-r--r--
revset: stop serializing node when using "%ln" Turning hundred of thousand of node from node to hex and back can be slow… what about we stop doing it? In many case were we are using node id we should be using revision id. However this is not a good reason to have a stupidly slow implementation of "%ln". This caught my attention again because the phase discovery during push make an extensive use of "%ln" or huge set. In absolute, that phase discovery probably should use "%ld" and need to improves its algorithmic complexity, but improving "%ln" seems simple and long overdue. This greatly speeds up `hg push` on repository with many drafts. Here are some relevant poulpe benchmarks: ### data-env-vars.name = mozilla-try-2023-03-22-zstd-sparse-revlog # benchmark.name = hg.command.push # bin-env-vars.hg.flavor = default # bin-env-vars.hg.py-re2-module = default # benchmark.variants.explicit-rev = all-out-heads # benchmark.variants.issue6528 = disabled # benchmark.variants.protocol = ssh # benchmark.variants.reuse-external-delta-parent = default ## benchmark.variants.revs = any-1-extra-rev before: 44.235070 after: 20.416329 (-53.85%, -23.82) ## benchmark.variants.revs = any-100-extra-rev before: 49.234697 after: 26.519829 (-46.14%, -22.71) ### benchmark.name = hg.command.bundle # bin-env-vars.hg.flavor = default # bin-env-vars.hg.py-re2-module = default # benchmark.variants.revs = all # benchmark.variants.type = none-streamv2 ## data-env-vars.name = heptapod-public-2024-03-25-zstd-sparse-revlog before: 10.138396 after: 7.750458 (-23.55%, -2.39) ## data-env-vars.name = mercurial-public-2024-03-22-zstd-sparse-revlog before: 1.263859 after: 0.700229 (-44.60%, -0.56) ## data-env-vars.name = mozilla-try-2023-03-22-zstd-sparse-revlog before: 399.484481 after: 346.5089 (-13.26%, -52.98) ## data-env-vars.name = pypy-2024-03-22-zstd-sparse-revlog before: 4.540080 after: 3.401700 (-25.07%, -1.14) ## data-env-vars.name = tryton-public-2024-03-22-zstd-sparse-revlog before: 2.975765 after: 1.870798 (-37.13%, -1.10)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
49236
e5e3a340b965 tests: remove hg10 requirement from test-check-pylint.t
Anton Shestakov <av6@dwimlabs.net>
parents: 46069
diff changeset
     1
#require test-repo pylint
31413
aa797bd54f44 test: add a basic 'test-check-pylint.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
     2
aa797bd54f44 test: add a basic 'test-check-pylint.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
     3
Run pylint for known rules we care about.
aa797bd54f44 test: add a basic 'test-check-pylint.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
     4
-----------------------------------------
aa797bd54f44 test: add a basic 'test-check-pylint.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
     5
aa797bd54f44 test: add a basic 'test-check-pylint.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
     6
There should be no recorded failures; fix the codebase before introducing a
aa797bd54f44 test: add a basic 'test-check-pylint.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
     7
new check.
aa797bd54f44 test: add a basic 'test-check-pylint.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
     8
aa797bd54f44 test: add a basic 'test-check-pylint.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
     9
Current checks:
aa797bd54f44 test: add a basic 'test-check-pylint.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    10
- W0102: no mutable default argument
49792
4658f5e67e4e tests: document what the other currently enabled pylint check ensures
Anton Shestakov <av6@dwimlabs.net>
parents: 49236
diff changeset
    11
- C0321: only one statement on a single line
31413
aa797bd54f44 test: add a basic 'test-check-pylint.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    12
aa797bd54f44 test: add a basic 'test-check-pylint.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    13
  $ touch $TESTTMP/fakerc
aa797bd54f44 test: add a basic 'test-check-pylint.t'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
    14
  $ pylint --rcfile=$TESTTMP/fakerc --disable=all \
35630
6061e54ff81d pylint: add a check for multiple statement on a single line
Boris Feld <boris.feld@octobus.net>
parents: 35627
diff changeset
    15
  >   --enable=W0102,C0321 \
35627
882998f08c3c pylint: split command line argument on multiple lines
Boris Feld <boris.feld@octobus.net>
parents: 34395
diff changeset
    16
  >   --reports=no \
34395
41401f502c83 tests: disable lints on mercurial/thirdparty
Siddharth Agarwal <sid0@fb.com>
parents: 32421
diff changeset
    17
  >   --ignore=thirdparty \
38180
6ae62d62c3f6 tests: adapt test-check-pylint to run on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 35630
diff changeset
    18
  >   mercurial hgdemandimport hgext hgext3rd | sed 's/\r$//'
6ae62d62c3f6 tests: adapt test-check-pylint to run on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 35630
diff changeset
    19
  Using config file *fakerc (glob) (?)
31839
5b048d5f8884 test-check-pylint: match its output
Jun Wu <quark@fb.com>
parents: 31413
diff changeset
    20
   (?)
46069
c7899dd29800 tests: update output for test-check-pylint.t
Matt Harbison <matt_harbison@yahoo.com>
parents: 38180
diff changeset
    21
  ------------------------------------* (glob) (?)
c7899dd29800 tests: update output for test-check-pylint.t
Matt Harbison <matt_harbison@yahoo.com>
parents: 38180
diff changeset
    22
  Your code has been rated at 10.00/10* (glob) (?)
31839
5b048d5f8884 test-check-pylint: match its output
Jun Wu <quark@fb.com>
parents: 31413
diff changeset
    23
   (?)