tests/test-grep.t
changeset 11902 3c9a5ed9b1e2
parent 11141 df5d1d571d27
child 12316 4134686b83e1
equal deleted inserted replaced
11901:a80577bfea29 11902:3c9a5ed9b1e2
       
     1   $ mkdir t
       
     2   $ cd t
       
     3   $ hg init
       
     4   $ echo import > port
       
     5   $ hg add port
       
     6   $ hg commit -m 0 -u spam -d '0 0'
       
     7   $ echo export >> port
       
     8   $ hg commit -m 1 -u eggs -d '1 0'
       
     9   $ echo export > port
       
    10   $ echo vaportight >> port
       
    11   $ echo 'import/export' >> port
       
    12   $ hg commit -m 2 -u spam -d '2 0'
       
    13   $ echo 'import/export' >> port
       
    14   $ hg commit -m 3 -u eggs -d '3 0'
       
    15   $ head -n 3 port > port1
       
    16   $ mv port1 port
       
    17   $ hg commit -m 4 -u spam -d '4 0'
       
    18 
       
    19 pattern error
       
    20 
       
    21   $ hg grep '**test**'
       
    22   grep: invalid match pattern: nothing to repeat
       
    23 
       
    24 simple
       
    25 
       
    26   $ hg grep port port
       
    27   port:4:export
       
    28   port:4:vaportight
       
    29   port:4:import/export
       
    30 
       
    31 simple with color
       
    32 
       
    33   $ hg --config extensions.color= grep --config color.mode=ansi \
       
    34   >     --color=always port port
       
    35   port:4:export
       
    36   port:4:vaportight
       
    37   port:4:import/export
       
    38 
       
    39 all
       
    40 
       
    41   $ hg grep --traceback --all -nu port port
       
    42   port:4:4:-:spam:import/export
       
    43   port:3:4:+:eggs:import/export
       
    44   port:2:1:-:spam:import
       
    45   port:2:2:-:spam:export
       
    46   port:2:1:+:spam:export
       
    47   port:2:2:+:spam:vaportight
       
    48   port:2:3:+:spam:import/export
       
    49   port:1:2:+:eggs:export
       
    50   port:0:1:+:spam:import
       
    51 
       
    52 other
       
    53 
       
    54   $ hg grep import port
       
    55   port:4:import/export
       
    56 
       
    57   $ hg cp port port2
       
    58   $ hg commit -m 4 -u spam -d '5 0'
       
    59 
       
    60 follow
       
    61 
       
    62   $ hg grep --traceback -f 'import$' port2
       
    63   port:0:import
       
    64   $ echo deport >> port2
       
    65   $ hg commit -m 5 -u eggs -d '6 0'
       
    66   $ hg grep -f --all -nu port port2
       
    67   port2:6:4:+:eggs:deport
       
    68   port:4:4:-:spam:import/export
       
    69   port:3:4:+:eggs:import/export
       
    70   port:2:1:-:spam:import
       
    71   port:2:2:-:spam:export
       
    72   port:2:1:+:spam:export
       
    73   port:2:2:+:spam:vaportight
       
    74   port:2:3:+:spam:import/export
       
    75   port:1:2:+:eggs:export
       
    76   port:0:1:+:spam:import
       
    77 
       
    78   $ cd ..
       
    79   $ hg init t2
       
    80   $ cd t2
       
    81   $ hg grep foobar foo
       
    82   $ hg grep foobar
       
    83   $ echo blue >> color
       
    84   $ echo black >> color
       
    85   $ hg add color
       
    86   $ hg ci -m 0
       
    87   $ echo orange >> color
       
    88   $ hg ci -m 1
       
    89   $ echo black > color
       
    90   $ hg ci -m 2
       
    91   $ echo orange >> color
       
    92   $ echo blue >> color
       
    93   $ hg ci -m 3
       
    94   $ hg grep orange
       
    95   color:3:orange
       
    96   $ hg grep --all orange
       
    97   color:3:+:orange
       
    98   color:2:-:orange
       
    99   color:1:+:orange
       
   100 
       
   101 
       
   102 match in last "line" without newline
       
   103 
       
   104   $ python -c 'fp = open("noeol", "wb"); fp.write("no infinite loop"); fp.close();'
       
   105   $ hg ci -Amnoeol
       
   106   adding noeol
       
   107 
       
   108 last character omitted in output to avoid infinite loop
       
   109 
       
   110   $ hg grep loop
       
   111   noeol:4:no infinite loo
       
   112 
       
   113 
       
   114   $ cd ..
       
   115 
       
   116 Got a traceback when using grep on a single
       
   117 revision with renamed files.
       
   118 issue 685
       
   119 
       
   120   $ hg init issue685
       
   121   $ cd issue685
       
   122   $ echo octarine > color
       
   123   $ hg ci -Amcolor
       
   124   adding color
       
   125   $ hg rename color colour
       
   126   $ hg ci -Am rename
       
   127   $ hg grep octarine
       
   128   colour:1:octarine
       
   129   color:0:octarine
       
   130 
       
   131 Used to crash here
       
   132 
       
   133   $ hg grep -r 1 octarine
       
   134   colour:1:octarine
       
   135   $ cd ..
       
   136 
       
   137 
       
   138 Issue337: test that grep follows parent-child relationships instead
       
   139 of just using revision numbers.
       
   140 
       
   141   $ hg init issue337
       
   142   $ cd issue337
       
   143 
       
   144   $ echo white > color
       
   145   $ hg commit -A -m "0 white"
       
   146   adding color
       
   147 
       
   148   $ echo red > color
       
   149   $ hg commit -A -m "1 red"
       
   150 
       
   151   $ hg update 0
       
   152   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   153   $ echo black > color
       
   154   $ hg commit -A -m "2 black"
       
   155   created new head
       
   156 
       
   157   $ hg update --clean 1
       
   158   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   159   $ echo blue > color
       
   160   $ hg commit -A -m "3 blue"
       
   161 
       
   162   $ hg grep --all red
       
   163   color:3:-:red
       
   164   color:1:+:red