tests/test-strict.t
author Martin von Zweigbergk <martinvonz@google.com>
Tue, 28 Oct 2014 22:47:22 -0700
changeset 25233 9789b4a7c595
parent 23400 3bd577a3283e
child 29974 7109d5ddeb0c
permissions -rw-r--r--
match: introduce boolean prefix() method tl;dr: This is another step towards a (previously unstated) goal of eliminating match.files() in conditions. There are four types of matchers: * always: Matches everything, checked with always(), files() is empty * exact: Matches exact set of files, checked with isexact(), files() contains the files to match * patterns: Matches more complex patterns, checked with anypats(), files() contains roots of the matched patterns * prefix: Matches simple 'path:' patterns as prefixes ('foo' matches both 'foo' and 'foo/bar'), no single method to check, files() contains the prefixes to match For completeness, it would be nice to have a method for checking for the "prefix" type of matcher as well, so let's add that, making it return True simply when none of the others do. The larger goal here is to eliminate uses of match.files() in conditions (i.e. bool(match.files())). The reason for this is that there are scenarios when you would like to create a "prefix" matcher that happens to match no files. One example is for 'hg files -I foo bar'. The narrowmatcher also restricts the set of files given and it would not surprise me if have bugs caused by that already. Note that 'if m.files() and not m.anypats()' and similar is sometimes used to catch the "exact" and "prefix" cases above.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12097
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
     1
  $ hg init
2988
63c3a1921a67 Add ui.strict config item.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
     2
12097
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
     3
  $ echo a > a
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
     4
  $ hg ci -Ama
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
     5
  adding a
2988
63c3a1921a67 Add ui.strict config item.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
     6
12097
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
     7
  $ hg an a
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
     8
  0: a
2988
63c3a1921a67 Add ui.strict config item.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
     9
16591
46e9ed223d2c commands: parse ui.strict config item as bool
Yuya Nishihara <yuya@tcha.org>
parents: 15862
diff changeset
    10
  $ hg --config ui.strict=False an a
46e9ed223d2c commands: parse ui.strict config item as bool
Yuya Nishihara <yuya@tcha.org>
parents: 15862
diff changeset
    11
  0: a
46e9ed223d2c commands: parse ui.strict config item as bool
Yuya Nishihara <yuya@tcha.org>
parents: 15862
diff changeset
    12
12097
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
    13
  $ echo "[ui]" >> $HGRCPATH
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
    14
  $ echo "strict=True" >> $HGRCPATH
2988
63c3a1921a67 Add ui.strict config item.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    15
12097
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
    16
  $ hg an a
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
    17
  hg: unknown command 'an'
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
    18
  Mercurial Distributed SCM
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
    19
  
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
    20
  basic commands:
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
    21
  
16853
7863ff383894 help: format command and option list help using RST
Olav Reinert <seroton10@gmail.com>
parents: 16591
diff changeset
    22
   add           add the specified files on the next commit
7863ff383894 help: format command and option list help using RST
Olav Reinert <seroton10@gmail.com>
parents: 16591
diff changeset
    23
   annotate      show changeset information by line for each file
7863ff383894 help: format command and option list help using RST
Olav Reinert <seroton10@gmail.com>
parents: 16591
diff changeset
    24
   clone         make a copy of an existing repository
7863ff383894 help: format command and option list help using RST
Olav Reinert <seroton10@gmail.com>
parents: 16591
diff changeset
    25
   commit        commit the specified files or all outstanding changes
7863ff383894 help: format command and option list help using RST
Olav Reinert <seroton10@gmail.com>
parents: 16591
diff changeset
    26
   diff          diff repository (or selected files)
7863ff383894 help: format command and option list help using RST
Olav Reinert <seroton10@gmail.com>
parents: 16591
diff changeset
    27
   export        dump the header and diffs for one or more changesets
7863ff383894 help: format command and option list help using RST
Olav Reinert <seroton10@gmail.com>
parents: 16591
diff changeset
    28
   forget        forget the specified files on the next commit
7863ff383894 help: format command and option list help using RST
Olav Reinert <seroton10@gmail.com>
parents: 16591
diff changeset
    29
   init          create a new repository in the given directory
7863ff383894 help: format command and option list help using RST
Olav Reinert <seroton10@gmail.com>
parents: 16591
diff changeset
    30
   log           show revision history of entire repository or files
23400
3bd577a3283e merge: be precise about what merged into what in short desc
anatoly techtonik <techtonik@gmail.com>
parents: 22118
diff changeset
    31
   merge         merge another revision into working directory
16853
7863ff383894 help: format command and option list help using RST
Olav Reinert <seroton10@gmail.com>
parents: 16591
diff changeset
    32
   pull          pull changes from the specified source
7863ff383894 help: format command and option list help using RST
Olav Reinert <seroton10@gmail.com>
parents: 16591
diff changeset
    33
   push          push changes to the specified destination
7863ff383894 help: format command and option list help using RST
Olav Reinert <seroton10@gmail.com>
parents: 16591
diff changeset
    34
   remove        remove the specified files on the next commit
7863ff383894 help: format command and option list help using RST
Olav Reinert <seroton10@gmail.com>
parents: 16591
diff changeset
    35
   serve         start stand-alone webserver
7863ff383894 help: format command and option list help using RST
Olav Reinert <seroton10@gmail.com>
parents: 16591
diff changeset
    36
   status        show changed files in the working directory
7863ff383894 help: format command and option list help using RST
Olav Reinert <seroton10@gmail.com>
parents: 16591
diff changeset
    37
   summary       summarize working directory state
7863ff383894 help: format command and option list help using RST
Olav Reinert <seroton10@gmail.com>
parents: 16591
diff changeset
    38
   update        update working directory (or switch revisions)
12097
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
    39
  
22118
9a299c39de01 help: normalize helplist hints
Matt Mackall <mpm@selenic.com>
parents: 17981
diff changeset
    40
  (use "hg help" for the full list of commands or "hg -v" for details)
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12097
diff changeset
    41
  [255]
12097
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
    42
  $ hg annotate a
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
    43
  0: a
2988
63c3a1921a67 Add ui.strict config item.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    44
12097
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
    45
should succeed - up is an alias, not an abbreviation
2988
63c3a1921a67 Add ui.strict config item.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff changeset
    46
12097
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
    47
  $ hg up
389c215885c5 tests: unify test-strict
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8167
diff changeset
    48
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved