[PATCH 1 of 8 V6] perf: add a `perftracecopies` command to benchmark copy tracking logic

Yuya Nishihara yuya at tcha.org
Fri Nov 23 21:29:48 EST 2018


On Mon, 19 Nov 2018 17:49:40 +0100, Boris Feld wrote:
> # HG changeset patch
> # User Boris Feld <boris.feld at octobus.net>
> # Date 1542628825 0
> #      Mon Nov 19 12:00:25 2018 +0000
> # Node ID 40c285f3b12012727bcdfd11984d81fe56386316
> # Parent  dba590f27c7abacbd7e9b27f3e06822bb0b339cb
> # EXP-Topic copy-perf
> # Available At https://bitbucket.org/octobus/mercurial-devel/
> #              hg pull https://bitbucket.org/octobus/mercurial-devel/ -r 40c285f3b120
> perf: add a `perftracecopies` command to benchmark copy tracking logic

> diff --git a/contrib/perf.py b/contrib/perf.py
> --- a/contrib/perf.py
> +++ b/contrib/perf.py
> @@ -1146,6 +1146,24 @@ def perftemplating(ui, repo, testedtempl
>      timer(format)
>      fm.end()
>  
> + at command(b'perftracecopies', formatteropts +
> +         [
> +          (b's', b'source', b'', b'copy tracing source'),
> +          (b'd', b'destination', b'', b'copy tracing destination'),
> +         ])
> +def perftracecopies(ui, repo, source, destination, **opts):
> +    """measure time necessary to trace copy between <source> and <destination>
> +    """
> +    opts = _byteskwargs(opts)
> +    timer, fm = gettimer(ui, opts)
> +    src = scmutil.revsingle(repo, source)
> +    dst = scmutil.revsingle(repo, destination)
> +
> +    def runone():
> +        copies.pathcopies(repo[src], repo[dst])
> +    timer(runone)
> +    fm.end()

I just found there's perfpathcopies.


More information about the Mercurial-devel mailing list