tests/test-revert-unknown.t
author Siddharth Agarwal <sid0@fb.com>
Fri, 01 Aug 2014 18:30:18 -0700
branchstable
changeset 21990 48e32c2c499b
parent 12156 4c94b6d0fb1c
child 44724 5c2a4f37eace
permissions -rw-r--r--
context: call normal on the right object dirstate.normal is the method that marks files as unchanged/normal. Rev 20a30cd41d21 started caching dirstate.normal in order to improve performance. However, there was an error in the patch: taking the wlock, under some conditions depending on platform, can cause a new dirstate object to be created. Caching dirstate.normal before calling wlock would then cause the fixup calls below to be on the old dirstate object, effectively disappearing into the ether. On Unix and Unix-like OSes, the condition under which we create a new dirstate object is 'the dirstate file has been modified since the last time we opened it'. This happens pretty rarely, so the object is usually the same -- there's little impact. On Windows, the condition is 'always'. This means files in the lookup state are never marked normal, so the bug has a serious performance impact since all the files in the lookup state are re-read every time hg status is run.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12111
327dee7f7327 tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 2982
diff changeset
     1
  $ hg init
327dee7f7327 tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 2982
diff changeset
     2
  $ touch unknown
1236
67a28636ea64 Fix bug with co -C across branches, update tests
mpm@selenic.com
parents:
diff changeset
     3
12111
327dee7f7327 tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 2982
diff changeset
     4
  $ touch a
327dee7f7327 tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 2982
diff changeset
     5
  $ hg add a
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 12111
diff changeset
     6
  $ hg ci -m "1"
1236
67a28636ea64 Fix bug with co -C across branches, update tests
mpm@selenic.com
parents:
diff changeset
     7
12111
327dee7f7327 tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 2982
diff changeset
     8
  $ touch b
327dee7f7327 tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 2982
diff changeset
     9
  $ hg add b
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 12111
diff changeset
    10
  $ hg ci -m "2"
12111
327dee7f7327 tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 2982
diff changeset
    11
327dee7f7327 tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 2982
diff changeset
    12
Should show unknown
1236
67a28636ea64 Fix bug with co -C across branches, update tests
mpm@selenic.com
parents:
diff changeset
    13
12111
327dee7f7327 tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 2982
diff changeset
    14
  $ hg status
327dee7f7327 tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 2982
diff changeset
    15
  ? unknown
327dee7f7327 tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 2982
diff changeset
    16
  $ hg revert -r 0 --all
327dee7f7327 tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 2982
diff changeset
    17
  removing b
327dee7f7327 tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 2982
diff changeset
    18
327dee7f7327 tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 2982
diff changeset
    19
Should show unknown and b removed
1236
67a28636ea64 Fix bug with co -C across branches, update tests
mpm@selenic.com
parents:
diff changeset
    20
12111
327dee7f7327 tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 2982
diff changeset
    21
  $ hg status
327dee7f7327 tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 2982
diff changeset
    22
  R b
327dee7f7327 tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 2982
diff changeset
    23
  ? unknown
327dee7f7327 tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 2982
diff changeset
    24
327dee7f7327 tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 2982
diff changeset
    25
Should show a and unknown
327dee7f7327 tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 2982
diff changeset
    26
327dee7f7327 tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 2982
diff changeset
    27
  $ ls
327dee7f7327 tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 2982
diff changeset
    28
  a
327dee7f7327 tests: unify test-revert-unknown
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 2982
diff changeset
    29
  unknown