tests/test-changelog-exec.t
author Durham Goode <durham@fb.com>
Thu, 11 Feb 2016 17:04:33 -0800
changeset 28087 0b7ce0b16d8a
parent 22502 e6e7ef68c879
child 37282 009d0283de5f
permissions -rw-r--r--
pathauditor: change parts verification order to be root first Previously, when we verified the parts of a path in the auditor, we would validate the deepest directory first, then it's parent, and so on up to the root. If there happened to be a symlink in the chain, that meant our first check would likely traverse that symlink. In some cases that symlink might point to a network filesystem that is expensive, and therefore this simple check could be very slow. The fix is to check the path parts starting at the root and working our way down. This has a minor performance difference in that we used to be able to short circuit from the audit if we reached a directory that had already been checked. Now we can't, but the cost is N dictionary look ups, where N is the number of parts in the path, which should be fairly minor.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
22046
7a9cbb315d84 tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents: 17132
diff changeset
     1
#require execbit
7a9cbb315d84 tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents: 17132
diff changeset
     2
11875
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
     3
b51a8138292a introduced a regression where we would mention in the
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
     4
changelog executable files added by the second parent of a merge. Test
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
     5
that that doesn't happen anymore
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
     6
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
     7
  $ hg init repo
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
     8
  $ cd repo
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
     9
  $ echo foo > foo
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
    10
  $ hg ci -qAm 'add foo'
5227
466323968b23 Avoid adding to the changelog executable files added by the second parent.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    11
11875
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
    12
  $ echo bar > bar
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
    13
  $ chmod +x bar
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
    14
  $ hg ci -qAm 'add bar'
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
    15
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
    16
manifest of p2:
5227
466323968b23 Avoid adding to the changelog executable files added by the second parent.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    17
11875
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
    18
  $ hg manifest
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
    19
  bar
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
    20
  foo
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
    21
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
    22
  $ hg up -qC 0
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
    23
  $ echo >> foo
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
    24
  $ hg ci -m 'change foo'
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
    25
  created new head
5227
466323968b23 Avoid adding to the changelog executable files added by the second parent.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    26
11875
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
    27
manifest of p1:
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
    28
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
    29
  $ hg manifest
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
    30
  foo
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
    31
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
    32
  $ hg merge
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
    33
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
    34
  (branch merge, don't forget to commit)
22492
d5261db0011f commit: catch changed exec bit on files from p1 (issue4382)
Matt Mackall <mpm@selenic.com>
parents: 17132
diff changeset
    35
  $ chmod +x foo
11875
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
    36
  $ hg ci -m 'merge'
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
    37
22492
d5261db0011f commit: catch changed exec bit on files from p1 (issue4382)
Matt Mackall <mpm@selenic.com>
parents: 17132
diff changeset
    38
this should not mention bar but should mention foo:
5227
466323968b23 Avoid adding to the changelog executable files added by the second parent.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    39
11875
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
    40
  $ hg tip -v
22492
d5261db0011f commit: catch changed exec bit on files from p1 (issue4382)
Matt Mackall <mpm@selenic.com>
parents: 17132
diff changeset
    41
  changeset:   3:c53d17ff3380
11875
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
    42
  tag:         tip
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
    43
  parent:      2:ed1b79f46b9a
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
    44
  parent:      1:d394a8db219b
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
    45
  user:        test
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
    46
  date:        Thu Jan 01 00:00:00 1970 +0000
22492
d5261db0011f commit: catch changed exec bit on files from p1 (issue4382)
Matt Mackall <mpm@selenic.com>
parents: 17132
diff changeset
    47
  files:       foo
11875
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
    48
  description:
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
    49
  merge
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
    50
  
88f5b5c058b5 tests: unify test-changelog-exec
Martin Geisler <mg@lazybytes.net>
parents: 8167
diff changeset
    51
  
5227
466323968b23 Avoid adding to the changelog executable files added by the second parent.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    52
14182
ec5886db9dc6 tests: fix deprecated use of hg debugdata/debugindex
Sune Foldager <cryo@cyanite.org>
parents: 11875
diff changeset
    53
  $ hg debugindex bar
17132
b87acfda5268 tests: reduce spurious failures when run with generaldelta
Bryan O'Sullivan <bryano@fb.com>
parents: 16913
diff changeset
    54
     rev    offset  length  ..... linkrev nodeid       p1           p2 (re)
b87acfda5268 tests: reduce spurious failures when run with generaldelta
Bryan O'Sullivan <bryano@fb.com>
parents: 16913
diff changeset
    55
       0         0       5  .....       1 b004912a8510 000000000000 000000000000 (re)
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 14182
diff changeset
    56
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 14182
diff changeset
    57
  $ cd ..