tests/test-diff-hashes.t
author Georges Racinet <georges.racinet@octobus.net>
Sun, 06 Jun 2021 01:24:30 +0200
branchstable
changeset 47343 9f798c1b0d89
parent 41784 251332dbf33d
permissions -rw-r--r--
cext: fix memory leak in phases computation Without this a buffer whose size in bytes is the number of changesets in the repository is leaked each time the repository is opened and changeset phases are computed. Impact: the current code in hgwebdir creates a new `localrepository` instance for each HTTP request. Since any pull or push is made of several requests, a team of 100 people can easily produce thousands of such requests per day. Being a low-level malloc, this leak can't be seen with the gc module and tools relying on that, but was spotted by valgrind immediately. Reproduction ------------ for i in range(cl_args.iterations): repo = hg.repository(baseui, repo_path) rev = repo.revs(rev).first() ctx = repo[rev] del ctx del repo # avoid any pollution by other type of leak # (that should be fixed in 5.8) repoview._filteredrepotypes.clear() gc.collect() Measurements ------------ Resident Set Size (RSS), taken on a clone of mozilla-central for performance analysis (440 000 changesets). before: 5.8+hg19.5ac0f2a8ba72 1000 iterations: 1606MB 5.8+hg19.5ac0f2a8ba72 10000 iterations: 5723MB after: 5.8+hg20.e2084d39e145 1000 iterations: 555MB 5.8+hg20.e2084d39e145 10000 iterations: 555MB (double checked, not a copy/paste error) (e2084d39e14 is the present changeset, before amendment of the message to add the measurements)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12137
e1814ff260c2 tests: unify test-diff-hashes
Adrian Buehlmann <adrian@cadifra.com>
parents: 5689
diff changeset
     1
  $ hg init a
e1814ff260c2 tests: unify test-diff-hashes
Adrian Buehlmann <adrian@cadifra.com>
parents: 5689
diff changeset
     2
  $ cd a
e1814ff260c2 tests: unify test-diff-hashes
Adrian Buehlmann <adrian@cadifra.com>
parents: 5689
diff changeset
     3
e1814ff260c2 tests: unify test-diff-hashes
Adrian Buehlmann <adrian@cadifra.com>
parents: 5689
diff changeset
     4
  $ hg diff inexistent1 inexistent2
15521
117f9190c1ba tests: hide 'No such file or directory' messages
Mads Kiilerich <mads@kiilerich.com>
parents: 12156
diff changeset
     5
  inexistent1: * (glob)
117f9190c1ba tests: hide 'No such file or directory' messages
Mads Kiilerich <mads@kiilerich.com>
parents: 12156
diff changeset
     6
  inexistent2: * (glob)
3387
2065789f6a3e use short hashes with diff -v
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
     7
12137
e1814ff260c2 tests: unify test-diff-hashes
Adrian Buehlmann <adrian@cadifra.com>
parents: 5689
diff changeset
     8
  $ echo bar > foo
e1814ff260c2 tests: unify test-diff-hashes
Adrian Buehlmann <adrian@cadifra.com>
parents: 5689
diff changeset
     9
  $ hg add foo
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 12137
diff changeset
    10
  $ hg ci -m 'add foo'
12137
e1814ff260c2 tests: unify test-diff-hashes
Adrian Buehlmann <adrian@cadifra.com>
parents: 5689
diff changeset
    11
e1814ff260c2 tests: unify test-diff-hashes
Adrian Buehlmann <adrian@cadifra.com>
parents: 5689
diff changeset
    12
  $ echo foobar > foo
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 12137
diff changeset
    13
  $ hg ci -m 'change foo'
3387
2065789f6a3e use short hashes with diff -v
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    14
12137
e1814ff260c2 tests: unify test-diff-hashes
Adrian Buehlmann <adrian@cadifra.com>
parents: 5689
diff changeset
    15
  $ hg --quiet diff -r 0 -r 1
41784
251332dbf33d diff: make sure we output stat even when --git is not passed (issue4037) (BC)
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 16913
diff changeset
    16
  diff -r a99fb63adac3 -r 9b8568d3af2f foo
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 12137
diff changeset
    17
  --- a/foo	Thu Jan 01 00:00:00 1970 +0000
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 12137
diff changeset
    18
  +++ b/foo	Thu Jan 01 00:00:00 1970 +0000
12137
e1814ff260c2 tests: unify test-diff-hashes
Adrian Buehlmann <adrian@cadifra.com>
parents: 5689
diff changeset
    19
  @@ -1,1 +1,1 @@
e1814ff260c2 tests: unify test-diff-hashes
Adrian Buehlmann <adrian@cadifra.com>
parents: 5689
diff changeset
    20
  -bar
e1814ff260c2 tests: unify test-diff-hashes
Adrian Buehlmann <adrian@cadifra.com>
parents: 5689
diff changeset
    21
  +foobar
3387
2065789f6a3e use short hashes with diff -v
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    22
12137
e1814ff260c2 tests: unify test-diff-hashes
Adrian Buehlmann <adrian@cadifra.com>
parents: 5689
diff changeset
    23
  $ hg diff -r 0 -r 1
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 12137
diff changeset
    24
  diff -r a99fb63adac3 -r 9b8568d3af2f foo
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 12137
diff changeset
    25
  --- a/foo	Thu Jan 01 00:00:00 1970 +0000
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 12137
diff changeset
    26
  +++ b/foo	Thu Jan 01 00:00:00 1970 +0000
12137
e1814ff260c2 tests: unify test-diff-hashes
Adrian Buehlmann <adrian@cadifra.com>
parents: 5689
diff changeset
    27
  @@ -1,1 +1,1 @@
e1814ff260c2 tests: unify test-diff-hashes
Adrian Buehlmann <adrian@cadifra.com>
parents: 5689
diff changeset
    28
  -bar
e1814ff260c2 tests: unify test-diff-hashes
Adrian Buehlmann <adrian@cadifra.com>
parents: 5689
diff changeset
    29
  +foobar
3387
2065789f6a3e use short hashes with diff -v
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    30
12137
e1814ff260c2 tests: unify test-diff-hashes
Adrian Buehlmann <adrian@cadifra.com>
parents: 5689
diff changeset
    31
  $ hg --verbose diff -r 0 -r 1
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 12137
diff changeset
    32
  diff -r a99fb63adac3 -r 9b8568d3af2f foo
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 12137
diff changeset
    33
  --- a/foo	Thu Jan 01 00:00:00 1970 +0000
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 12137
diff changeset
    34
  +++ b/foo	Thu Jan 01 00:00:00 1970 +0000
12137
e1814ff260c2 tests: unify test-diff-hashes
Adrian Buehlmann <adrian@cadifra.com>
parents: 5689
diff changeset
    35
  @@ -1,1 +1,1 @@
e1814ff260c2 tests: unify test-diff-hashes
Adrian Buehlmann <adrian@cadifra.com>
parents: 5689
diff changeset
    36
  -bar
e1814ff260c2 tests: unify test-diff-hashes
Adrian Buehlmann <adrian@cadifra.com>
parents: 5689
diff changeset
    37
  +foobar
3387
2065789f6a3e use short hashes with diff -v
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    38
12137
e1814ff260c2 tests: unify test-diff-hashes
Adrian Buehlmann <adrian@cadifra.com>
parents: 5689
diff changeset
    39
  $ hg --debug diff -r 0 -r 1
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 12137
diff changeset
    40
  diff -r a99fb63adac3f31816a22f665bc3b7a7655b30f4 -r 9b8568d3af2f1749445eef03aede868a6f39f210 foo
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 12137
diff changeset
    41
  --- a/foo	Thu Jan 01 00:00:00 1970 +0000
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 12137
diff changeset
    42
  +++ b/foo	Thu Jan 01 00:00:00 1970 +0000
12137
e1814ff260c2 tests: unify test-diff-hashes
Adrian Buehlmann <adrian@cadifra.com>
parents: 5689
diff changeset
    43
  @@ -1,1 +1,1 @@
e1814ff260c2 tests: unify test-diff-hashes
Adrian Buehlmann <adrian@cadifra.com>
parents: 5689
diff changeset
    44
  -bar
e1814ff260c2 tests: unify test-diff-hashes
Adrian Buehlmann <adrian@cadifra.com>
parents: 5689
diff changeset
    45
  +foobar
e1814ff260c2 tests: unify test-diff-hashes
Adrian Buehlmann <adrian@cadifra.com>
parents: 5689
diff changeset
    46
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 15521
diff changeset
    47
  $ cd ..