tests/test-mactext.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Tue, 09 Apr 2024 22:36:35 +0200
changeset 51594 e3a5ec2d236a
parent 46417 768056549737
permissions -rw-r--r--
outgoing: rework the handling of the `missingroots` case to be faster The previous implementation was slow, to the point it was taking a significant amount of `hg bundle --type none-streamv2` call. We rework the code to compute the same value much faster, making the operation disappear from the `hg bundle --type none-streamv2` profile. Someone would remark that producing a streamclone does not requires an `outgoing` object. However that is a matter for another day. There is other user of `missingroots` (non stream `hg bundle` call for example), and they will also benefit from this rework. We implement an old TODO in the process, directly computing the missing and common attribute as we have most element at hand already. ### 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: 7.750458 after: 6.665565 (-14.00%, -1.08) ## data-env-vars.name = mercurial-public-2024-03-22-zstd-sparse-revlog before: 0.700229 after: 0.496050 (-29.16%, -0.20) ## data-env-vars.name = mozilla-try-2023-03-22-zstd-sparse-revlog before: 346.508952 after: 316.749699 (-8.59%, -29.76) ## data-env-vars.name = pypy-2024-03-22-zstd-sparse-revlog before: 3.401700 after: 2.915810 (-14.28%, -0.49) ## data-env-vars.name = tryton-public-2024-03-22-zstd-sparse-revlog before: 1.870798 after: 1.461583 (-21.87%, -0.41) note: this whole `missingroots` of outgoing has a limited number of callers and could likely be replace by something simpler (like taking an explicit "missing_revs" set for example). However this is a wider change and we focus on a small impact, quick rework that does not change the API for now.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6481
e837dded56c7 win32text: Add macencode/macdecode
OHASHI Hideya <ohachige@gmail.com>
parents:
diff changeset
     1
12458
9446bd059da3 tests: unify test-mactext
Matt Mackall <mpm@selenic.com>
parents: 8167
diff changeset
     2
  $ cat > unix2mac.py <<EOF
9446bd059da3 tests: unify test-mactext
Matt Mackall <mpm@selenic.com>
parents: 8167
diff changeset
     3
  > import sys
9446bd059da3 tests: unify test-mactext
Matt Mackall <mpm@selenic.com>
parents: 8167
diff changeset
     4
  > 
9446bd059da3 tests: unify test-mactext
Matt Mackall <mpm@selenic.com>
parents: 8167
diff changeset
     5
  > for path in sys.argv[1:]:
36023
adec6374a0b2 py3: replace file() with open() in test-mactext.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32940
diff changeset
     6
  >     data = open(path, 'rb').read()
adec6374a0b2 py3: replace file() with open() in test-mactext.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32940
diff changeset
     7
  >     data = data.replace(b'\n', b'\r')
adec6374a0b2 py3: replace file() with open() in test-mactext.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32940
diff changeset
     8
  >     open(path, 'wb').write(data)
12458
9446bd059da3 tests: unify test-mactext
Matt Mackall <mpm@selenic.com>
parents: 8167
diff changeset
     9
  > EOF
9446bd059da3 tests: unify test-mactext
Matt Mackall <mpm@selenic.com>
parents: 8167
diff changeset
    10
  $ hg init
9446bd059da3 tests: unify test-mactext
Matt Mackall <mpm@selenic.com>
parents: 8167
diff changeset
    11
  $ echo '[hooks]' >> .hg/hgrc
9446bd059da3 tests: unify test-mactext
Matt Mackall <mpm@selenic.com>
parents: 8167
diff changeset
    12
  $ echo 'pretxncommit.cr = python:hgext.win32text.forbidcr' >> .hg/hgrc
9446bd059da3 tests: unify test-mactext
Matt Mackall <mpm@selenic.com>
parents: 8167
diff changeset
    13
  $ echo 'pretxnchangegroup.cr = python:hgext.win32text.forbidcr' >> .hg/hgrc
9446bd059da3 tests: unify test-mactext
Matt Mackall <mpm@selenic.com>
parents: 8167
diff changeset
    14
  $ cat .hg/hgrc
9446bd059da3 tests: unify test-mactext
Matt Mackall <mpm@selenic.com>
parents: 8167
diff changeset
    15
  [hooks]
9446bd059da3 tests: unify test-mactext
Matt Mackall <mpm@selenic.com>
parents: 8167
diff changeset
    16
  pretxncommit.cr = python:hgext.win32text.forbidcr
9446bd059da3 tests: unify test-mactext
Matt Mackall <mpm@selenic.com>
parents: 8167
diff changeset
    17
  pretxnchangegroup.cr = python:hgext.win32text.forbidcr
15243
1e9451476bf8 tests: cleanup of echo statements left over from test conversion
Mads Kiilerich <mads@kiilerich.com>
parents: 12458
diff changeset
    18
12458
9446bd059da3 tests: unify test-mactext
Matt Mackall <mpm@selenic.com>
parents: 8167
diff changeset
    19
  $ echo hello > f
9446bd059da3 tests: unify test-mactext
Matt Mackall <mpm@selenic.com>
parents: 8167
diff changeset
    20
  $ hg add f
9446bd059da3 tests: unify test-mactext
Matt Mackall <mpm@selenic.com>
parents: 8167
diff changeset
    21
  $ hg ci -m 1
15243
1e9451476bf8 tests: cleanup of echo statements left over from test conversion
Mads Kiilerich <mads@kiilerich.com>
parents: 12458
diff changeset
    22
39707
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 36023
diff changeset
    23
  $ "$PYTHON" unix2mac.py f
12458
9446bd059da3 tests: unify test-mactext
Matt Mackall <mpm@selenic.com>
parents: 8167
diff changeset
    24
  $ hg ci -m 2
16932
7985a9e2ddce win32text: lowercase warning message
Martin Geisler <mg@aragost.com>
parents: 15243
diff changeset
    25
  attempt to commit or push text file(s) using CR line endings
12458
9446bd059da3 tests: unify test-mactext
Matt Mackall <mpm@selenic.com>
parents: 8167
diff changeset
    26
  in dea860dc51ec: f
9446bd059da3 tests: unify test-mactext
Matt Mackall <mpm@selenic.com>
parents: 8167
diff changeset
    27
  transaction abort!
9446bd059da3 tests: unify test-mactext
Matt Mackall <mpm@selenic.com>
parents: 8167
diff changeset
    28
  rollback completed
9446bd059da3 tests: unify test-mactext
Matt Mackall <mpm@selenic.com>
parents: 8167
diff changeset
    29
  abort: pretxncommit.cr hook failed
46417
768056549737 errors: use exit code 40 for when a hook fails
Martin von Zweigbergk <martinvonz@google.com>
parents: 44642
diff changeset
    30
  [40]
44642
da9b7f9635a2 tests: use `f --hexdump` to print file content
Gregory Szorc <gregory.szorc@gmail.com>
parents: 39707
diff changeset
    31
  $ hg cat f | f --hexdump
da9b7f9635a2 tests: use `f --hexdump` to print file content
Gregory Szorc <gregory.szorc@gmail.com>
parents: 39707
diff changeset
    32
  
da9b7f9635a2 tests: use `f --hexdump` to print file content
Gregory Szorc <gregory.szorc@gmail.com>
parents: 39707
diff changeset
    33
  0000: 68 65 6c 6c 6f 0a                               |hello.|
da9b7f9635a2 tests: use `f --hexdump` to print file content
Gregory Szorc <gregory.szorc@gmail.com>
parents: 39707
diff changeset
    34
  $ f --hexdump f
da9b7f9635a2 tests: use `f --hexdump` to print file content
Gregory Szorc <gregory.szorc@gmail.com>
parents: 39707
diff changeset
    35
  f:
da9b7f9635a2 tests: use `f --hexdump` to print file content
Gregory Szorc <gregory.szorc@gmail.com>
parents: 39707
diff changeset
    36
  0000: 68 65 6c 6c 6f 0d                               |hello.|