tests/test-record.t
author Siddharth Agarwal <sid0@fb.com>
Tue, 31 Mar 2015 19:29:39 -0700
changeset 24560 b38bcf18993c
parent 24365 f1eaf03dd608
child 25304 9bc11716bc86
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:
12328
b63f6422d2a7 tests: fix a bunch of pointless #s in unified tests
Matt Mackall <mpm@selenic.com>
parents: 12316
diff changeset
     1
Set up a repo
5037
b2607267236d Add record extension, giving darcs-like interactive hunk picking
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
     2
23172
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23054
diff changeset
     3
  $ cat <<EOF >> $HGRCPATH
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23054
diff changeset
     4
  > [ui]
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23054
diff changeset
     5
  > interactive = true
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23054
diff changeset
     6
  > [extensions]
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23054
diff changeset
     7
  > record =
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 23054
diff changeset
     8
  > EOF
5037
b2607267236d Add record extension, giving darcs-like interactive hunk picking
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
     9
12074
35c143e85b1b tests: unify test-record
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 11238
diff changeset
    10
  $ hg init a
35c143e85b1b tests: unify test-record
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 11238
diff changeset
    11
  $ cd a
5037
b2607267236d Add record extension, giving darcs-like interactive hunk picking
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    12
24308
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    13
Record help
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    14
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    15
  $ hg record -h
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    16
  hg record [OPTION]... [FILE]...
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    17
  
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    18
  interactively select changes to commit
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    19
  
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    20
      If a list of files is omitted, all changes reported by "hg status" will be
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    21
      candidates for recording.
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    22
  
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    23
      See "hg help dates" for a list of formats valid for -d/--date.
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    24
  
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    25
      You will be prompted for whether to record changes to each modified file,
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    26
      and for files with multiple changes, for each change to use. For each
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    27
      query, the following responses are possible:
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    28
  
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    29
        y - record this change
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    30
        n - skip this change
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    31
        e - edit this change manually
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    32
  
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    33
        s - skip remaining changes to this file
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    34
        f - record remaining changes to this file
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    35
  
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    36
        d - done, skip remaining changes and files
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    37
        a - record all changes to all remaining files
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    38
        q - quit, recording no changes
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    39
  
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    40
        ? - display help
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    41
  
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    42
      This command is not available when committing a merge.
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    43
  
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    44
  options ([+] can be repeated):
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    45
  
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    46
   -A --addremove           mark new/missing files as added/removed before
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    47
                            committing
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    48
      --close-branch        mark a branch as closed, hiding it from the branch
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    49
                            list
24365
f1eaf03dd608 commands: say "working directory" in full spelling
Yuya Nishihara <yuya@tcha.org>
parents: 24308
diff changeset
    50
      --amend               amend the parent of the working directory
24308
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    51
   -s --secret              use the secret phase for committing
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    52
   -e --edit                invoke editor on commit messages
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    53
   -I --include PATTERN [+] include names matching the given patterns
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    54
   -X --exclude PATTERN [+] exclude names matching the given patterns
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    55
   -m --message TEXT        use text as commit message
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    56
   -l --logfile FILE        read commit message from file
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    57
   -d --date DATE           record the specified date as commit date
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    58
   -u --user USER           record the specified user as committer
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    59
   -S --subrepos            recurse into subrepositories
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    60
   -w --ignore-all-space    ignore white space when comparing lines
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    61
   -b --ignore-space-change ignore changes in the amount of white space
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    62
   -B --ignore-blank-lines  ignore changes whose lines are all blank
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    63
  
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    64
  (some details hidden, use --verbose to show complete help)
1725843a7644 record: remove duplicated tests
Laurent Charignon <lcharignon@fb.com>
parents: 24235
diff changeset
    65
12074
35c143e85b1b tests: unify test-record
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 11238
diff changeset
    66
Select no files
5037
b2607267236d Add record extension, giving darcs-like interactive hunk picking
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    67
12074
35c143e85b1b tests: unify test-record
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 11238
diff changeset
    68
  $ touch empty-rw
35c143e85b1b tests: unify test-record
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 11238
diff changeset
    69
  $ hg add empty-rw
5037
b2607267236d Add record extension, giving darcs-like interactive hunk picking
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    70
12074
35c143e85b1b tests: unify test-record
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 11238
diff changeset
    71
  $ hg record empty-rw<<EOF
35c143e85b1b tests: unify test-record
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 11238
diff changeset
    72
  > n
35c143e85b1b tests: unify test-record
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 11238
diff changeset
    73
  > EOF
35c143e85b1b tests: unify test-record
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 11238
diff changeset
    74
  diff --git a/empty-rw b/empty-rw
35c143e85b1b tests: unify test-record
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 11238
diff changeset
    75
  new file mode 100644
22589
9ab18a912c44 ui: show prompt choice if input is not a tty but is forced to be interactive
Mads Kiilerich <madski@unity3d.com>
parents: 20580
diff changeset
    76
  examine changes to 'empty-rw'? [Ynesfdaq?] n
9ab18a912c44 ui: show prompt choice if input is not a tty but is forced to be interactive
Mads Kiilerich <madski@unity3d.com>
parents: 20580
diff changeset
    77
  
12074
35c143e85b1b tests: unify test-record
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 11238
diff changeset
    78
  no changes to record
35c143e85b1b tests: unify test-record
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 11238
diff changeset
    79
35c143e85b1b tests: unify test-record
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 11238
diff changeset
    80
  $ hg tip -p
35c143e85b1b tests: unify test-record
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 11238
diff changeset
    81
  changeset:   -1:000000000000
35c143e85b1b tests: unify test-record
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 11238
diff changeset
    82
  tag:         tip
35c143e85b1b tests: unify test-record
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 11238
diff changeset
    83
  user:        
35c143e85b1b tests: unify test-record
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 11238
diff changeset
    84
  date:        Thu Jan 01 00:00:00 1970 +0000
35c143e85b1b tests: unify test-record
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 11238
diff changeset
    85
  
35c143e85b1b tests: unify test-record
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 11238
diff changeset
    86
  
35c143e85b1b tests: unify test-record
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 11238
diff changeset
    87
5037
b2607267236d Add record extension, giving darcs-like interactive hunk picking
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    88