tests/test-update-issue1456.t
author Augie Fackler <augie@google.com>
Mon, 30 Jul 2018 22:50:00 -0400
changeset 39238 1ddb296e0dee
parent 22046 7a9cbb315d84
child 45859 527ce85c2e60
permissions -rw-r--r--
fastannotate: initial import from Facebook's hg-experimental I made as few changes as I could to get the tests to pass, but this was a bit involved due to some churn in the blame code since someone last gave fastannotate any TLC. There's still follow-up work here to rip out support for old versions of hg and to integrate the protocol with modern standards. Some performance numbers (all on my 2016 MacBook Pro with a 2.6Ghz i7): Mercurial mercurial/manifest.py traditional blame time: real 1.050 secs (user 0.990+0.000 sys 0.060+0.000) build cache time: real 5.900 secs (user 5.720+0.000 sys 0.110+0.000) fastannotate time: real 0.120 secs (user 0.100+0.000 sys 0.020+0.000) Mercurial mercurial/localrepo.py traditional blame time: real 3.330 secs (user 3.220+0.000 sys 0.070+0.000) build cache time: real 30.610 secs (user 30.190+0.000 sys 0.230+0.000) fastannotate time: real 0.180 secs (user 0.160+0.000 sys 0.020+0.000) mozilla-central dom/ipc/ContentParent.cpp traditional blame time: real 7.640 secs (user 7.210+0.000 sys 0.380+0.000) build cache time: real 98.650 secs (user 97.000+0.000 sys 0.950+0.000) fastannotate time: real 1.580 secs (user 1.340+0.000 sys 0.240+0.000) mozilla-central dom/base/nsDocument.cpp traditional blame time: real 17.110 secs (user 16.490+0.000 sys 0.500+0.000) build cache time: real 399.750 secs (user 394.520+0.000 sys 2.610+0.000) fastannotate time: real 1.780 secs (user 1.530+0.000 sys 0.240+0.000) So building the cache is expensive (but might be faster with xdiff enabled), but the blame results are *way* faster. Differential Revision: https://phab.mercurial-scm.org/D3994
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
22046
7a9cbb315d84 tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents: 19801
diff changeset
     1
#require execbit
15442
db0340f4b507 tests: use 'hghave execbit' for tests that manipulate x bit in file system
Mads Kiilerich <mads@kiilerich.com>
parents: 12316
diff changeset
     2
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 8855
diff changeset
     3
  $ rm -rf a
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 8855
diff changeset
     4
  $ hg init a
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 8855
diff changeset
     5
  $ cd a
7569
89207edf3973 correctly update dirstate after update+mode change (issue1456)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
     6
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 8855
diff changeset
     7
  $ echo foo > foo
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 8855
diff changeset
     8
  $ hg ci -qAm0
18895
ed676ed67a5c manifestmerge: handle workdir removed, remote removed with flags
Siddharth Agarwal <sid0@fb.com>
parents: 18334
diff changeset
     9
  $ echo toremove > toremove
ed676ed67a5c manifestmerge: handle workdir removed, remote removed with flags
Siddharth Agarwal <sid0@fb.com>
parents: 18334
diff changeset
    10
  $ echo todelete > todelete
ed676ed67a5c manifestmerge: handle workdir removed, remote removed with flags
Siddharth Agarwal <sid0@fb.com>
parents: 18334
diff changeset
    11
  $ chmod +x foo toremove todelete
ed676ed67a5c manifestmerge: handle workdir removed, remote removed with flags
Siddharth Agarwal <sid0@fb.com>
parents: 18334
diff changeset
    12
  $ hg ci -qAm1
ed676ed67a5c manifestmerge: handle workdir removed, remote removed with flags
Siddharth Agarwal <sid0@fb.com>
parents: 18334
diff changeset
    13
ed676ed67a5c manifestmerge: handle workdir removed, remote removed with flags
Siddharth Agarwal <sid0@fb.com>
parents: 18334
diff changeset
    14
Test that local removed/deleted, remote removed works with flags
ed676ed67a5c manifestmerge: handle workdir removed, remote removed with flags
Siddharth Agarwal <sid0@fb.com>
parents: 18334
diff changeset
    15
  $ hg rm toremove
ed676ed67a5c manifestmerge: handle workdir removed, remote removed with flags
Siddharth Agarwal <sid0@fb.com>
parents: 18334
diff changeset
    16
  $ rm todelete
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 8855
diff changeset
    17
  $ hg co -q 0
18895
ed676ed67a5c manifestmerge: handle workdir removed, remote removed with flags
Siddharth Agarwal <sid0@fb.com>
parents: 18334
diff changeset
    18
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 8855
diff changeset
    19
  $ echo dirty > foo
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 8855
diff changeset
    20
  $ hg up -c
19801
41abe2e3e3b7 update: standardize error message for dirty update --check
Siddharth Agarwal <sid0@fb.com>
parents: 18895
diff changeset
    21
  abort: uncommitted changes
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12279
diff changeset
    22
  [255]
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 8855
diff changeset
    23
  $ hg up -q
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 8855
diff changeset
    24
  $ cat foo
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 8855
diff changeset
    25
  dirty
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 8855
diff changeset
    26
  $ hg st -A
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 8855
diff changeset
    27
  M foo
18895
ed676ed67a5c manifestmerge: handle workdir removed, remote removed with flags
Siddharth Agarwal <sid0@fb.com>
parents: 18334
diff changeset
    28
  C todelete
ed676ed67a5c manifestmerge: handle workdir removed, remote removed with flags
Siddharth Agarwal <sid0@fb.com>
parents: 18334
diff changeset
    29
  C toremove
7569
89207edf3973 correctly update dirstate after update+mode change (issue1456)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
    30
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 8855
diff changeset
    31
Validate update of standalone execute bit change:
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 8855
diff changeset
    32
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 8855
diff changeset
    33
  $ hg up -C 0
18895
ed676ed67a5c manifestmerge: handle workdir removed, remote removed with flags
Siddharth Agarwal <sid0@fb.com>
parents: 18334
diff changeset
    34
  1 files updated, 0 files merged, 2 files removed, 0 files unresolved
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 8855
diff changeset
    35
  $ chmod -x foo
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 8855
diff changeset
    36
  $ hg ci -m removeexec
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 8855
diff changeset
    37
  nothing changed
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12279
diff changeset
    38
  [1]
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 8855
diff changeset
    39
  $ hg up -C 0
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 8855
diff changeset
    40
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 8855
diff changeset
    41
  $ hg up
18895
ed676ed67a5c manifestmerge: handle workdir removed, remote removed with flags
Siddharth Agarwal <sid0@fb.com>
parents: 18334
diff changeset
    42
  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 8855
diff changeset
    43
  $ hg st
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 8855
diff changeset
    44
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 15442
diff changeset
    45
  $ cd ..