tests/test-hgignore.t
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
Sat, 24 Dec 2011 19:05:35 +0900
branchstable
changeset 15723 1581da01d5c4
parent 13396 3e66eec9a814
child 15447 9910f60a37ee
permissions -rw-r--r--
windows: use normalized path as path to subrepo path to subrepo is used to identify or check location of subrepo. it should be normalized (in "/" delimiter form), because it is also used with narrowmatcher which uses only normalized path even on Windows environment. this patch applies "util.pconvert()" on path to subrepo (called "subpath") to normalize it. for this patch, referers of below were checked. - subrepo.state() - subrepo.itersubrepos() - subrepo.subrepo() - context.sub() - context.substate() typical usecase is: for subpath in ctx.substate: sub = ctx.sub(subpath) ... ctx.substate[subpath] .... in this case, normalization has no side effect, because keys given from substate are used as key itself. other cases shown below also seem to require subpath to be normalized. - path components are joined by "/", in "commands.forget()": for subpath in ctx.substate: subforget[subpath + '/' + fsub] = (fsub, sub) - normalized "file" is used to check below condition, in "commands.revert()", "localrepository.commit()", and "localrepository._checknested()" file in ctx.substate - substate.keys() is passed to dirstate.walk()/status() which use only normalized pathes
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12312
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
     1
  $ hg init
1478
e6dd91a88b57 add a test for hgignore
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
     2
12399
4fee1fd3de9a tests: added a short description to issue numbers
Martin Geisler <mg@aragost.com>
parents: 12376
diff changeset
     3
Issue562: .hgignore requires newline at end:
4439
4e521a3ee5eb Test issue 562: .hgignore requires newline at end
Patrick Mezard <pmezard@gmail.com>
parents: 2009
diff changeset
     4
12312
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
     5
  $ touch foo
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
     6
  $ touch bar
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
     7
  $ touch baz
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
     8
  $ cat > makeignore.py <<EOF
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
     9
  > f = open(".hgignore", "w")
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    10
  > f.write("ignore\n")
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    11
  > f.write("foo\n")
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    12
  > # No EOL here
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    13
  > f.write("bar")
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    14
  > f.close()
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    15
  > EOF
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    16
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    17
  $ python makeignore.py
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    18
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    19
Should display baz only:
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    20
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    21
  $ hg status
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    22
  ? baz
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    23
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    24
  $ rm foo bar baz .hgignore makeignore.py
4439
4e521a3ee5eb Test issue 562: .hgignore requires newline at end
Patrick Mezard <pmezard@gmail.com>
parents: 2009
diff changeset
    25
12312
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    26
  $ touch a.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    27
  $ touch a.c
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    28
  $ touch syntax
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    29
  $ mkdir dir
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    30
  $ touch dir/a.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    31
  $ touch dir/b.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    32
  $ touch dir/c.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    33
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    34
  $ hg add dir/a.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    35
  $ hg commit -m 0
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    36
  $ hg add dir/b.o
4439
4e521a3ee5eb Test issue 562: .hgignore requires newline at end
Patrick Mezard <pmezard@gmail.com>
parents: 2009
diff changeset
    37
12312
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    38
  $ hg status
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    39
  A dir/b.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    40
  ? a.c
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    41
  ? a.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    42
  ? dir/c.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    43
  ? syntax
1478
e6dd91a88b57 add a test for hgignore
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
    44
12312
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    45
  $ echo "*.o" > .hgignore
12366
c01dc9087d9a tests: drop a bunch of sed calls from unified tests
Matt Mackall <mpm@selenic.com>
parents: 12312
diff changeset
    46
  $ hg status
12640
6cc4b14fb76b tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents: 12399
diff changeset
    47
  abort: $TESTTMP/.hgignore: invalid pattern (relre): *.o
12366
c01dc9087d9a tests: drop a bunch of sed calls from unified tests
Matt Mackall <mpm@selenic.com>
parents: 12312
diff changeset
    48
  [255]
1478
e6dd91a88b57 add a test for hgignore
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
    49
12312
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    50
  $ echo ".*\.o" > .hgignore
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    51
  $  hg status
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    52
  A dir/b.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    53
  ? .hgignore
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    54
  ? a.c
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    55
  ? syntax
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    56
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    57
Check it does not ignore the current directory '.':
1478
e6dd91a88b57 add a test for hgignore
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
    58
12312
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    59
  $ echo "^\." > .hgignore
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    60
  $ hg status
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    61
  A dir/b.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    62
  ? a.c
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    63
  ? a.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    64
  ? dir/c.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    65
  ? syntax
1478
e6dd91a88b57 add a test for hgignore
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
    66
12312
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    67
  $ echo "glob:**.o" > .hgignore
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    68
  $ hg status
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    69
  A dir/b.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    70
  ? .hgignore
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    71
  ? a.c
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    72
  ? syntax
1478
e6dd91a88b57 add a test for hgignore
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
    73
12312
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    74
  $ echo "glob:*.o" > .hgignore
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    75
  $ hg status
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    76
  A dir/b.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    77
  ? .hgignore
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    78
  ? a.c
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    79
  ? syntax
6479
31abcae33b4f dirstate: do not ignore current directory '.' (issue 1078)
Patrick Mezard <pmezard@gmail.com>
parents: 5029
diff changeset
    80
12312
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    81
  $ echo "syntax: glob" > .hgignore
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    82
  $ echo "re:.*\.o" >> .hgignore
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    83
  $ hg status
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    84
  A dir/b.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    85
  ? .hgignore
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    86
  ? a.c
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    87
  ? syntax
5029
ac97e065cfc7 Fix re: and glob: patterns in .hgignore (reported by Brad Schick)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4439
diff changeset
    88
12312
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    89
  $ echo "syntax: invalid" > .hgignore
12366
c01dc9087d9a tests: drop a bunch of sed calls from unified tests
Matt Mackall <mpm@selenic.com>
parents: 12312
diff changeset
    90
  $ hg status
12640
6cc4b14fb76b tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents: 12399
diff changeset
    91
  $TESTTMP/.hgignore: ignoring invalid syntax 'invalid'
12312
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    92
  A dir/b.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    93
  ? .hgignore
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    94
  ? a.c
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    95
  ? a.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    96
  ? dir/c.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    97
  ? syntax
1478
e6dd91a88b57 add a test for hgignore
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
    98
12312
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
    99
  $ echo "syntax: glob" > .hgignore
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
   100
  $ echo "*.o" >> .hgignore
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
   101
  $ hg status
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
   102
  A dir/b.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
   103
  ? .hgignore
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
   104
  ? a.c
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
   105
  ? syntax
1478
e6dd91a88b57 add a test for hgignore
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
   106
12312
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
   107
  $ echo "relglob:syntax*" > .hgignore
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
   108
  $ hg status
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
   109
  A dir/b.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
   110
  ? .hgignore
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
   111
  ? a.c
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
   112
  ? a.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
   113
  ? dir/c.o
1478
e6dd91a88b57 add a test for hgignore
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
   114
12312
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
   115
  $ echo "relglob:*" > .hgignore
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
   116
  $ hg status
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
   117
  A dir/b.o
1491
91c0e8d7ddcf fix a bug in dirstate.changes when cwd != repo.root
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1478
diff changeset
   118
12312
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
   119
  $ cd dir
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
   120
  $ hg status .
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
   121
  A b.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
   122
13396
3e66eec9a814 add debugignore which yields the combined ignore patten of the .hgignore files
jfh <jason@jasonfharris.com>
parents: 12640
diff changeset
   123
  $ hg debugignore
3e66eec9a814 add debugignore which yields the combined ignore patten of the .hgignore files
jfh <jason@jasonfharris.com>
parents: 12640
diff changeset
   124
  (?:(?:|.*/)[^/]*(?:/|$))