tests/test-issue2137.t
author smuralid
Thu, 13 Sep 2012 23:50:45 -0700
changeset 17746 6d218e47cf9b
parent 16913 f2719b387380
child 17802 a421459b83c0
permissions -rw-r--r--
log: speed up hg log for untracked files (issue1340) 'hg log' on untracked files tends to be fairly slow. The root cause is that we end up using the 'slowpath' when we can't find a revlog for the files listed. This could happen if the file in question is an untracked file, or it is a directory. This diff tries to speed up 'hg log' (by avoiding the slowpath) for files if we can determine if that file is not (and was never) a directory. We use the previously added store.__contains__ methods to test if the directory exists (or existed) in the store. To avoid changing any existing semantics, this 'optimization' kicks in only when none of the files listed as arguments to the hg log command exist in the store.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12328
b63f6422d2a7 tests: fix a bunch of pointless #s in unified tests
Matt Mackall <mpm@selenic.com>
parents: 12204
diff changeset
     1
http://mercurial.selenic.com/bts/issue2137
10914
b7ca37b90762 revlog: fix lazyparser.__iter__() to return all revisions (issue2137)
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
     2
12204
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
     3
Setup:
10914
b7ca37b90762 revlog: fix lazyparser.__iter__() to return all revisions (issue2137)
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
     4
12328
b63f6422d2a7 tests: fix a bunch of pointless #s in unified tests
Matt Mackall <mpm@selenic.com>
parents: 12204
diff changeset
     5
create a little extension that has 3 side-effects:
b63f6422d2a7 tests: fix a bunch of pointless #s in unified tests
Matt Mackall <mpm@selenic.com>
parents: 12204
diff changeset
     6
1) ensure changelog data is not inlined
b63f6422d2a7 tests: fix a bunch of pointless #s in unified tests
Matt Mackall <mpm@selenic.com>
parents: 12204
diff changeset
     7
2) make revlog to use lazyparser
b63f6422d2a7 tests: fix a bunch of pointless #s in unified tests
Matt Mackall <mpm@selenic.com>
parents: 12204
diff changeset
     8
3) test that repo.lookup() works
b63f6422d2a7 tests: fix a bunch of pointless #s in unified tests
Matt Mackall <mpm@selenic.com>
parents: 12204
diff changeset
     9
1 and 2 are preconditions for the bug; 3 is the bug.
10914
b7ca37b90762 revlog: fix lazyparser.__iter__() to return all revisions (issue2137)
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
    10
12204
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    11
  $ cat > commitwrapper.py <<EOF
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    12
  > from mercurial import extensions, node, revlog
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    13
  > 
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    14
  > def reposetup(ui, repo):
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    15
  >     def wrapcommit(orig, *args, **kwargs):
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    16
  >         result = orig(*args, **kwargs)
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    17
  >         tip1 = node.short(repo.changelog.tip())
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    18
  >         tip2 = node.short(repo.lookup(tip1))
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    19
  >         assert tip1 == tip2
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    20
  >         ui.write('new tip: %s\n' % tip1)
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    21
  >         return result
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    22
  > 
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    23
  >     extensions.wrapfunction(repo, 'commit', wrapcommit)
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    24
  > 
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    25
  > def extsetup(ui):
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    26
  >     revlog._maxinline = 8             # split out 00changelog.d early
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    27
  >     revlog._prereadsize = 8           # use revlog.lazyparser
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    28
  > EOF
10914
b7ca37b90762 revlog: fix lazyparser.__iter__() to return all revisions (issue2137)
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
    29
12204
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    30
  $ cat >> $HGRCPATH <<EOF
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    31
  > [extensions]
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    32
  > commitwrapper = `pwd`/commitwrapper.py
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    33
  > EOF
10914
b7ca37b90762 revlog: fix lazyparser.__iter__() to return all revisions (issue2137)
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
    34
12204
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    35
  $ hg init repo1
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    36
  $ cd repo1
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    37
  $ echo a > a
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    38
  $ hg commit -A -m'add a with a long commit message to make the changelog a bit bigger'
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    39
  adding a
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    40
  new tip: 553596fad57b
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    41
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    42
Test that new changesets are visible to repo.lookup():
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    43
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    44
  $ echo a >> a
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    45
  $ hg commit -m'one more commit to demonstrate the bug'
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    46
  new tip: 799ae3599e0e
10914
b7ca37b90762 revlog: fix lazyparser.__iter__() to return all revisions (issue2137)
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
    47
12204
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    48
  $ hg tip
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    49
  changeset:   1:799ae3599e0e
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    50
  tag:         tip
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    51
  user:        test
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    52
  date:        Thu Jan 01 00:00:00 1970 +0000
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    53
  summary:     one more commit to demonstrate the bug
c55d69c5fb77 tests: unify test-issue1438 and test-issue2137
Adrian Buehlmann <adrian@cadifra.com>
parents: 11072
diff changeset
    54
  
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 12328
diff changeset
    55
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 12328
diff changeset
    56
  $ cd ..