tests/test-diffdir.t
author Siddharth Agarwal <sid0@fb.com>
Tue, 31 Mar 2015 19:29:39 -0700
changeset 24560 b38bcf18993c
parent 12617 2063d36b406e
child 27901 29c8e35d3283
permissions -rw-r--r--
dirstate.walk: don't keep track of normalized files in parallel Rev 2bb13f2b778c changed the semantics of the work list to store (normalized, non-normalized) pairs. All the tuple creation and destruction hurts perf: on a large repo on OS X, 'hg status' went from 3.62 seconds to 3.78. It also is unnecessary in most cases: - it is clearly unnecessary on case-sensitive filesystems. - it is also unnecessary when filenames have been read off of disk rather than being supplied by the user. The only case where the non-normalized case is required at all is when the file is unknown. To eliminate most of the perf cost, keep trace of whether the directory needs to be normalized at all with a boolean called 'alreadynormed'. Pay the cost of directory normalization only when necessary. For the above large repo, 'hg status' goes to 3.63 seconds.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11921
650d8a023249 tests: unify test-diffdir
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 4180
diff changeset
     1
  $ hg init
650d8a023249 tests: unify test-diffdir
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 4180
diff changeset
     2
  $ touch a
650d8a023249 tests: unify test-diffdir
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 4180
diff changeset
     3
  $ hg add a
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11921
diff changeset
     4
  $ hg ci -m "a"
536
c15b4bc0a11c Refactor diffrevs/diffdir into changes
mpm@selenic.com
parents:
diff changeset
     5
11921
650d8a023249 tests: unify test-diffdir
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 4180
diff changeset
     6
  $ echo 123 > b
650d8a023249 tests: unify test-diffdir
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 4180
diff changeset
     7
  $ hg add b
650d8a023249 tests: unify test-diffdir
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 4180
diff changeset
     8
  $ hg diff --nodates
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11921
diff changeset
     9
  diff -r 3903775176ed b
11921
650d8a023249 tests: unify test-diffdir
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 4180
diff changeset
    10
  --- /dev/null
650d8a023249 tests: unify test-diffdir
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 4180
diff changeset
    11
  +++ b/b
650d8a023249 tests: unify test-diffdir
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 4180
diff changeset
    12
  @@ -0,0 +1,1 @@
650d8a023249 tests: unify test-diffdir
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 4180
diff changeset
    13
  +123
536
c15b4bc0a11c Refactor diffrevs/diffdir into changes
mpm@selenic.com
parents:
diff changeset
    14
11921
650d8a023249 tests: unify test-diffdir
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 4180
diff changeset
    15
  $ hg diff --nodates -r tip
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11921
diff changeset
    16
  diff -r 3903775176ed b
11921
650d8a023249 tests: unify test-diffdir
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 4180
diff changeset
    17
  --- /dev/null
650d8a023249 tests: unify test-diffdir
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 4180
diff changeset
    18
  +++ b/b
650d8a023249 tests: unify test-diffdir
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 4180
diff changeset
    19
  @@ -0,0 +1,1 @@
650d8a023249 tests: unify test-diffdir
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 4180
diff changeset
    20
  +123
1723
fde8fb2cbede Fix diff against an empty file (issue124) and add a test for this.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 981
diff changeset
    21
11921
650d8a023249 tests: unify test-diffdir
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 4180
diff changeset
    22
  $ echo foo > a
650d8a023249 tests: unify test-diffdir
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 4180
diff changeset
    23
  $ hg diff --nodates
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11921
diff changeset
    24
  diff -r 3903775176ed a
11921
650d8a023249 tests: unify test-diffdir
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 4180
diff changeset
    25
  --- a/a
650d8a023249 tests: unify test-diffdir
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 4180
diff changeset
    26
  +++ b/a
650d8a023249 tests: unify test-diffdir
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 4180
diff changeset
    27
  @@ -0,0 +1,1 @@
650d8a023249 tests: unify test-diffdir
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 4180
diff changeset
    28
  +foo
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11921
diff changeset
    29
  diff -r 3903775176ed b
11921
650d8a023249 tests: unify test-diffdir
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 4180
diff changeset
    30
  --- /dev/null
650d8a023249 tests: unify test-diffdir
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 4180
diff changeset
    31
  +++ b/b
650d8a023249 tests: unify test-diffdir
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 4180
diff changeset
    32
  @@ -0,0 +1,1 @@
650d8a023249 tests: unify test-diffdir
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 4180
diff changeset
    33
  +123
3825
000d122071b5 fix hg diff -r ''
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3199
diff changeset
    34
11921
650d8a023249 tests: unify test-diffdir
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 4180
diff changeset
    35
  $ hg diff -r ""
12617
2063d36b406e revsets: make revpair revsets-aware
Matt Mackall <mpm@selenic.com>
parents: 12346
diff changeset
    36
  hg: parse error: empty query
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    37
  [255]
11921
650d8a023249 tests: unify test-diffdir
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 4180
diff changeset
    38
  $ hg diff -r tip -r ""
12617
2063d36b406e revsets: make revpair revsets-aware
Matt Mackall <mpm@selenic.com>
parents: 12346
diff changeset
    39
  hg: parse error: empty query
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
    40
  [255]