89
89
self._mk_unknown_file('file0.txt')
91
91
out, err = self.run_bzr(['grep', 'line1', 'file0.txt'])
92
self.assertContainsRe(out, b"file0.txt:line1", flags=TestGrep._reflags)
92
self.assertContainsRe(out, "file0.txt:line1", flags=TestGrep._reflags)
93
93
self.assertEqual(len(out.splitlines()), 2) # finds line1 and line10
95
95
out, err = self.run_bzr(['grep', 'line\\d+', 'file0.txt'])
96
self.assertContainsRe(out, b"file0.txt:line1", flags=TestGrep._reflags)
96
self.assertContainsRe(out, "file0.txt:line1", flags=TestGrep._reflags)
97
97
self.assertEqual(len(out.splitlines()), 10)
99
99
# unknown file is not grepped unless explicitely specified
100
100
out, err = self.run_bzr(['grep', 'line1'])
101
self.assertNotContainsRe(out, b"file0.txt", flags=TestGrep._reflags)
101
self.assertNotContainsRe(out, "file0.txt", flags=TestGrep._reflags)
102
102
self.assertEqual(len(out.splitlines()), 0)
104
104
# unknown file is not grepped unless explicitely specified
105
105
out, err = self.run_bzr(['grep', 'line1$'])
106
self.assertNotContainsRe(out, b"file0.txt", flags=TestGrep._reflags)
106
self.assertNotContainsRe(out, "file0.txt", flags=TestGrep._reflags)
107
107
self.assertEqual(len(out.splitlines()), 0)
109
109
def test_ver_basic_file(self):
137
137
self._update_file('file0.txt', 'ABC\n', checkin=False)
139
139
out, err = self.run_bzr(['grep', 'ABC', 'file0.txt'])
140
self.assertContainsRe(out, b"file0.txt:ABC", flags=TestGrep._reflags)
140
self.assertContainsRe(out, "file0.txt:ABC", flags=TestGrep._reflags)
141
141
self.assertEqual(len(out.splitlines()), 1)
143
143
out, err = self.run_bzr(['grep', '[A-Z]{3}', 'file0.txt'])
144
self.assertContainsRe(out, b"file0.txt:ABC", flags=TestGrep._reflags)
144
self.assertContainsRe(out, "file0.txt:ABC", flags=TestGrep._reflags)
145
145
self.assertEqual(len(out.splitlines()), 1)
147
147
out, err = self.run_bzr(['grep', '-r', 'last:1', 'ABC', 'file0.txt'])
148
self.assertNotContainsRe(out, b"file0.txt", flags=TestGrep._reflags)
148
self.assertNotContainsRe(out, "file0.txt", flags=TestGrep._reflags)
149
149
self.assertEqual(len(out.splitlines()), 0)
151
151
out, err = self.run_bzr(['grep', '-r', 'last:1', '[A-Z]{3}', 'file0.txt'])
152
self.assertNotContainsRe(out, b"file0.txt", flags=TestGrep._reflags)
152
self.assertNotContainsRe(out, "file0.txt", flags=TestGrep._reflags)
153
153
self.assertEqual(len(out.splitlines()), 0)
155
155
def test_ver_basic_include(self):
165
165
out, err = self.run_bzr(['grep', '-r', 'last:1',
166
166
'--include', '*.aa', '--include', '*.bb', 'line1'])
167
self.assertContainsRe(out, b"file0.aa~.:line1", flags=TestGrep._reflags)
168
self.assertContainsRe(out, b"file0.bb~.:line1", flags=TestGrep._reflags)
169
self.assertNotContainsRe(out, b"file0.cc", flags=TestGrep._reflags)
167
self.assertContainsRe(out, "file0.aa~.:line1", flags=TestGrep._reflags)
168
self.assertContainsRe(out, "file0.bb~.:line1", flags=TestGrep._reflags)
169
self.assertNotContainsRe(out, "file0.cc", flags=TestGrep._reflags)
170
170
# two lines each (line1, line10) from file0.aa and file0.bb
171
171
self.assertEqual(len(out.splitlines()), 4)
173
173
out, err = self.run_bzr(['grep', '-r', 'last:1',
174
174
'--include', '*.aa', '--include', '*.bb', 'line1$'])
175
self.assertContainsRe(out, b"file0.aa~.:line1", flags=TestGrep._reflags)
176
self.assertContainsRe(out, b"file0.bb~.:line1", flags=TestGrep._reflags)
177
self.assertNotContainsRe(out, b"file0.cc", flags=TestGrep._reflags)
175
self.assertContainsRe(out, "file0.aa~.:line1", flags=TestGrep._reflags)
176
self.assertContainsRe(out, "file0.bb~.:line1", flags=TestGrep._reflags)
177
self.assertNotContainsRe(out, "file0.cc", flags=TestGrep._reflags)
178
178
# one lines each (line1) from file0.aa and file0.bb
179
179
self.assertEqual(len(out.splitlines()), 2)
181
181
out, err = self.run_bzr(['grep', '-r', 'last:1',
182
182
'-I', '*.aa', '-I', '*.bb', 'line1'])
183
self.assertContainsRe(out, b"file0.aa~.:line1", flags=TestGrep._reflags)
184
self.assertContainsRe(out, b"file0.bb~.:line1", flags=TestGrep._reflags)
185
self.assertNotContainsRe(out, b"file0.cc", flags=TestGrep._reflags)
183
self.assertContainsRe(out, "file0.aa~.:line1", flags=TestGrep._reflags)
184
self.assertContainsRe(out, "file0.bb~.:line1", flags=TestGrep._reflags)
185
self.assertNotContainsRe(out, "file0.cc", flags=TestGrep._reflags)
186
186
# two lines each (line1, line10) from file0.aa and file0.bb
187
187
self.assertEqual(len(out.splitlines()), 4)
189
189
out, err = self.run_bzr(['grep', '-r', 'last:1',
190
190
'-I', '*.aa', '-I', '*.bb', 'line1$'])
191
self.assertContainsRe(out, b"file0.aa~.:line1", flags=TestGrep._reflags)
192
self.assertContainsRe(out, b"file0.bb~.:line1", flags=TestGrep._reflags)
193
self.assertNotContainsRe(out, b"file0.cc", flags=TestGrep._reflags)
191
self.assertContainsRe(out, "file0.aa~.:line1", flags=TestGrep._reflags)
192
self.assertContainsRe(out, "file0.bb~.:line1", flags=TestGrep._reflags)
193
self.assertNotContainsRe(out, "file0.cc", flags=TestGrep._reflags)
194
194
# one lines each (line1) from file0.aa and file0.bb
195
195
self.assertEqual(len(out.splitlines()), 2)
207
207
out, err = self.run_bzr(['grep', '--include', '*.aa',
208
208
'--include', '*.bb', 'line1'])
209
self.assertContainsRe(out, b"file0.aa:line1", flags=TestGrep._reflags)
210
self.assertContainsRe(out, b"file0.bb:line1", flags=TestGrep._reflags)
211
self.assertNotContainsRe(out, b"file0.cc", flags=TestGrep._reflags)
209
self.assertContainsRe(out, "file0.aa:line1", flags=TestGrep._reflags)
210
self.assertContainsRe(out, "file0.bb:line1", flags=TestGrep._reflags)
211
self.assertNotContainsRe(out, "file0.cc", flags=TestGrep._reflags)
212
212
# two lines each (line1, line10) from file0.aa and file0.bb
213
213
self.assertEqual(len(out.splitlines()), 4)
215
215
out, err = self.run_bzr(['grep', '--include', '*.aa',
216
216
'--include', '*.bb', 'line1$'])
217
self.assertContainsRe(out, b"file0.aa:line1", flags=TestGrep._reflags)
218
self.assertContainsRe(out, b"file0.bb:line1", flags=TestGrep._reflags)
219
self.assertNotContainsRe(out, b"file0.cc", flags=TestGrep._reflags)
217
self.assertContainsRe(out, "file0.aa:line1", flags=TestGrep._reflags)
218
self.assertContainsRe(out, "file0.bb:line1", flags=TestGrep._reflags)
219
self.assertNotContainsRe(out, "file0.cc", flags=TestGrep._reflags)
220
220
# one line each (line1) from file0.aa and file0.bb
221
221
self.assertEqual(len(out.splitlines()), 2)
233
233
out, err = self.run_bzr(['grep', '-r', 'last:1',
234
234
'--exclude', '*.cc', 'line1'])
235
self.assertContainsRe(out, b"file0.aa~.:line1$", flags=TestGrep._reflags)
236
self.assertContainsRe(out, b"file0.bb~.:line1$", flags=TestGrep._reflags)
237
self.assertContainsRe(out, b"file0.aa~.:line10", flags=TestGrep._reflags)
238
self.assertContainsRe(out, b"file0.bb~.:line10", flags=TestGrep._reflags)
239
self.assertNotContainsRe(out, b"file0.cc", flags=TestGrep._reflags)
235
self.assertContainsRe(out, "file0.aa~.:line1$", flags=TestGrep._reflags)
236
self.assertContainsRe(out, "file0.bb~.:line1$", flags=TestGrep._reflags)
237
self.assertContainsRe(out, "file0.aa~.:line10", flags=TestGrep._reflags)
238
self.assertContainsRe(out, "file0.bb~.:line10", flags=TestGrep._reflags)
239
self.assertNotContainsRe(out, "file0.cc", flags=TestGrep._reflags)
240
240
# two lines each (line1, line10) from file0.aa and file0.bb
241
241
self.assertEqual(len(out.splitlines()), 4)
243
243
out, err = self.run_bzr(['grep', '-r', 'last:1',
244
244
'--exclude', '*.cc', 'line1$'])
245
self.assertContainsRe(out, b"file0.aa~.:line1", flags=TestGrep._reflags)
246
self.assertContainsRe(out, b"file0.bb~.:line1", flags=TestGrep._reflags)
247
self.assertNotContainsRe(out, b"file0.cc", flags=TestGrep._reflags)
245
self.assertContainsRe(out, "file0.aa~.:line1", flags=TestGrep._reflags)
246
self.assertContainsRe(out, "file0.bb~.:line1", flags=TestGrep._reflags)
247
self.assertNotContainsRe(out, "file0.cc", flags=TestGrep._reflags)
248
248
# one line each (line1) from file0.aa and file0.bb
249
249
self.assertEqual(len(out.splitlines()), 2)
251
251
out, err = self.run_bzr(['grep', '-r', 'last:1',
252
252
'-X', '*.cc', 'line1'])
253
self.assertContainsRe(out, b"file0.aa~.:line1", flags=TestGrep._reflags)
254
self.assertContainsRe(out, b"file0.bb~.:line1", flags=TestGrep._reflags)
255
self.assertNotContainsRe(out, b"file0.cc", flags=TestGrep._reflags)
253
self.assertContainsRe(out, "file0.aa~.:line1", flags=TestGrep._reflags)
254
self.assertContainsRe(out, "file0.bb~.:line1", flags=TestGrep._reflags)
255
self.assertNotContainsRe(out, "file0.cc", flags=TestGrep._reflags)
256
256
# two lines each (line1, line10) from file0.aa and file0.bb
257
257
self.assertEqual(len(out.splitlines()), 4)
267
267
self._mk_versioned_file('file0.cc')
269
269
out, err = self.run_bzr(['grep', '--exclude', '*.cc', 'line1'])
270
self.assertContainsRe(out, b"file0.aa:line1", flags=TestGrep._reflags)
271
self.assertContainsRe(out, b"file0.bb:line1", flags=TestGrep._reflags)
272
self.assertNotContainsRe(out, b"file0.cc", flags=TestGrep._reflags)
270
self.assertContainsRe(out, "file0.aa:line1", flags=TestGrep._reflags)
271
self.assertContainsRe(out, "file0.bb:line1", flags=TestGrep._reflags)
272
self.assertNotContainsRe(out, "file0.cc", flags=TestGrep._reflags)
273
273
# two lines each (line1, line10) from file0.aa and file0.bb
274
274
self.assertEqual(len(out.splitlines()), 4)
276
276
out, err = self.run_bzr(['grep', '--exclude', '*.cc', 'lin.1$'])
277
self.assertContainsRe(out, b"file0.aa:line1", flags=TestGrep._reflags)
278
self.assertContainsRe(out, b"file0.bb:line1", flags=TestGrep._reflags)
279
self.assertNotContainsRe(out, b"file0.cc", flags=TestGrep._reflags)
277
self.assertContainsRe(out, "file0.aa:line1", flags=TestGrep._reflags)
278
self.assertContainsRe(out, "file0.bb:line1", flags=TestGrep._reflags)
279
self.assertNotContainsRe(out, "file0.cc", flags=TestGrep._reflags)
280
280
# one line each (line1) from file0.aa and file0.bb
281
281
self.assertEqual(len(out.splitlines()), 2)
291
291
self._mk_versioned_file('file2.txt', total_lines=2)
293
293
out, err = self.run_bzr(['grep', '-r', 'last:1', 'line[1-2]$'])
294
self.assertContainsRe(out, b"file0.txt~.:line1", flags=TestGrep._reflags)
295
self.assertContainsRe(out, b"file0.txt~.:line2", flags=TestGrep._reflags)
296
self.assertContainsRe(out, b"file1.txt~.:line1", flags=TestGrep._reflags)
297
self.assertContainsRe(out, b"file1.txt~.:line2", flags=TestGrep._reflags)
298
self.assertContainsRe(out, b"file2.txt~.:line1", flags=TestGrep._reflags)
299
self.assertContainsRe(out, b"file2.txt~.:line2", flags=TestGrep._reflags)
294
self.assertContainsRe(out, "file0.txt~.:line1", flags=TestGrep._reflags)
295
self.assertContainsRe(out, "file0.txt~.:line2", flags=TestGrep._reflags)
296
self.assertContainsRe(out, "file1.txt~.:line1", flags=TestGrep._reflags)
297
self.assertContainsRe(out, "file1.txt~.:line2", flags=TestGrep._reflags)
298
self.assertContainsRe(out, "file2.txt~.:line1", flags=TestGrep._reflags)
299
self.assertContainsRe(out, "file2.txt~.:line2", flags=TestGrep._reflags)
300
300
self.assertEqual(len(out.splitlines()), 6)
302
302
out, err = self.run_bzr(['grep', '-r', 'last:1', 'line'])
303
self.assertContainsRe(out, b"file0.txt~.:line1", flags=TestGrep._reflags)
304
self.assertContainsRe(out, b"file0.txt~.:line2", flags=TestGrep._reflags)
305
self.assertContainsRe(out, b"file1.txt~.:line1", flags=TestGrep._reflags)
306
self.assertContainsRe(out, b"file1.txt~.:line2", flags=TestGrep._reflags)
307
self.assertContainsRe(out, b"file2.txt~.:line1", flags=TestGrep._reflags)
308
self.assertContainsRe(out, b"file2.txt~.:line2", flags=TestGrep._reflags)
303
self.assertContainsRe(out, "file0.txt~.:line1", flags=TestGrep._reflags)
304
self.assertContainsRe(out, "file0.txt~.:line2", flags=TestGrep._reflags)
305
self.assertContainsRe(out, "file1.txt~.:line1", flags=TestGrep._reflags)
306
self.assertContainsRe(out, "file1.txt~.:line2", flags=TestGrep._reflags)
307
self.assertContainsRe(out, "file2.txt~.:line1", flags=TestGrep._reflags)
308
self.assertContainsRe(out, "file2.txt~.:line2", flags=TestGrep._reflags)
309
309
self.assertEqual(len(out.splitlines()), 6)
311
311
def test_multiple_wtree_files(self):
324
324
out, err = self.run_bzr(['grep', 'HELLO',
325
325
'file0.txt', 'file1.txt', 'file2.txt'])
327
self.assertContainsRe(out, b"file0.txt:HELLO", flags=TestGrep._reflags)
328
self.assertContainsRe(out, b"file1.txt:HELLO", flags=TestGrep._reflags)
329
self.assertContainsRe(out, b"file2.txt:HELLO", flags=TestGrep._reflags)
327
self.assertContainsRe(out, "file0.txt:HELLO", flags=TestGrep._reflags)
328
self.assertContainsRe(out, "file1.txt:HELLO", flags=TestGrep._reflags)
329
self.assertContainsRe(out, "file2.txt:HELLO", flags=TestGrep._reflags)
330
330
self.assertEqual(len(out.splitlines()), 3)
332
332
out, err = self.run_bzr(['grep', 'HELLO', '-r', 'last:1',
333
333
'file0.txt', 'file1.txt', 'file2.txt'])
335
self.assertNotContainsRe(out, b"file0.txt", flags=TestGrep._reflags)
336
self.assertContainsRe(out, b"file1.txt~.:HELLO", flags=TestGrep._reflags)
337
self.assertNotContainsRe(out, b"file2.txt", flags=TestGrep._reflags)
335
self.assertNotContainsRe(out, "file0.txt", flags=TestGrep._reflags)
336
self.assertContainsRe(out, "file1.txt~.:HELLO", flags=TestGrep._reflags)
337
self.assertNotContainsRe(out, "file2.txt", flags=TestGrep._reflags)
338
338
self.assertEqual(len(out.splitlines()), 1)
340
340
out, err = self.run_bzr(['grep', 'HE..O',
341
341
'file0.txt', 'file1.txt', 'file2.txt'])
343
self.assertContainsRe(out, b"file0.txt:HELLO", flags=TestGrep._reflags)
344
self.assertContainsRe(out, b"file1.txt:HELLO", flags=TestGrep._reflags)
345
self.assertContainsRe(out, b"file2.txt:HELLO", flags=TestGrep._reflags)
343
self.assertContainsRe(out, "file0.txt:HELLO", flags=TestGrep._reflags)
344
self.assertContainsRe(out, "file1.txt:HELLO", flags=TestGrep._reflags)
345
self.assertContainsRe(out, "file2.txt:HELLO", flags=TestGrep._reflags)
346
346
self.assertEqual(len(out.splitlines()), 3)
348
348
out, err = self.run_bzr(['grep', 'HE..O', '-r', 'last:1',
349
349
'file0.txt', 'file1.txt', 'file2.txt'])
351
self.assertNotContainsRe(out, b"file0.txt", flags=TestGrep._reflags)
352
self.assertContainsRe(out, b"file1.txt~.:HELLO", flags=TestGrep._reflags)
353
self.assertNotContainsRe(out, b"file2.txt", flags=TestGrep._reflags)
351
self.assertNotContainsRe(out, "file0.txt", flags=TestGrep._reflags)
352
self.assertContainsRe(out, "file1.txt~.:HELLO", flags=TestGrep._reflags)
353
self.assertNotContainsRe(out, "file2.txt", flags=TestGrep._reflags)
354
354
self.assertEqual(len(out.splitlines()), 1)
356
356
def test_ver_null_option(self):
506
506
out, err = self.run_bzr(['grep', '-r', 'last:1',
507
507
'--include', '*.aa', 'line1'])
508
self.assertContainsRe(out, b"^file1.aa~5:line1$", flags=TestGrep._reflags)
509
self.assertContainsRe(out, b"^file1.aa~5:line10$", flags=TestGrep._reflags)
510
self.assertNotContainsRe(out, b"file0.txt", flags=TestGrep._reflags)
508
self.assertContainsRe(out, "^file1.aa~5:line1$", flags=TestGrep._reflags)
509
self.assertContainsRe(out, "^file1.aa~5:line10$", flags=TestGrep._reflags)
510
self.assertNotContainsRe(out, "file0.txt", flags=TestGrep._reflags)
511
511
# finds line1 and line10
512
512
self.assertEqual(len(out.splitlines()), 2)
514
514
out, err = self.run_bzr(['grep', '-r', 'last:2..last:1',
515
515
'--include', '*.aa', 'line1'])
516
self.assertContainsRe(out, b"^file1.aa~4:line1$", flags=TestGrep._reflags)
517
self.assertContainsRe(out, b"^file1.aa~4:line10$", flags=TestGrep._reflags)
518
self.assertContainsRe(out, b"^file1.aa~5:line1$", flags=TestGrep._reflags)
519
self.assertContainsRe(out, b"^file1.aa~5:line10$", flags=TestGrep._reflags)
520
self.assertNotContainsRe(out, b"file0.txt", flags=TestGrep._reflags)
516
self.assertContainsRe(out, "^file1.aa~4:line1$", flags=TestGrep._reflags)
517
self.assertContainsRe(out, "^file1.aa~4:line10$", flags=TestGrep._reflags)
518
self.assertContainsRe(out, "^file1.aa~5:line1$", flags=TestGrep._reflags)
519
self.assertContainsRe(out, "^file1.aa~5:line10$", flags=TestGrep._reflags)
520
self.assertNotContainsRe(out, "file0.txt", flags=TestGrep._reflags)
521
521
# finds line1 and line10 over two revisions
522
522
self.assertEqual(len(out.splitlines()), 4)
524
524
out, err = self.run_bzr(['grep', '-r', 'last:1',
525
525
'--include', '*.aa', 'lin.1'])
526
self.assertContainsRe(out, b"^file1.aa~5:line1$", flags=TestGrep._reflags)
527
self.assertContainsRe(out, b"^file1.aa~5:line10$", flags=TestGrep._reflags)
528
self.assertNotContainsRe(out, b"file0.txt", flags=TestGrep._reflags)
526
self.assertContainsRe(out, "^file1.aa~5:line1$", flags=TestGrep._reflags)
527
self.assertContainsRe(out, "^file1.aa~5:line10$", flags=TestGrep._reflags)
528
self.assertNotContainsRe(out, "file0.txt", flags=TestGrep._reflags)
529
529
# finds line1 and line10
530
530
self.assertEqual(len(out.splitlines()), 2)
532
532
out, err = self.run_bzr(['grep', '-r', 'last:3..last:1',
533
533
'--include', '*.aa', 'lin.1'])
534
self.assertContainsRe(out, b"^file1.aa~3:line1$", flags=TestGrep._reflags)
535
self.assertContainsRe(out, b"^file1.aa~4:line1$", flags=TestGrep._reflags)
536
self.assertContainsRe(out, b"^file1.aa~5:line1$", flags=TestGrep._reflags)
537
self.assertContainsRe(out, b"^file1.aa~3:line10$", flags=TestGrep._reflags)
538
self.assertContainsRe(out, b"^file1.aa~4:line10$", flags=TestGrep._reflags)
539
self.assertContainsRe(out, b"^file1.aa~5:line10$", flags=TestGrep._reflags)
540
self.assertNotContainsRe(out, b"file0.txt", flags=TestGrep._reflags)
534
self.assertContainsRe(out, "^file1.aa~3:line1$", flags=TestGrep._reflags)
535
self.assertContainsRe(out, "^file1.aa~4:line1$", flags=TestGrep._reflags)
536
self.assertContainsRe(out, "^file1.aa~5:line1$", flags=TestGrep._reflags)
537
self.assertContainsRe(out, "^file1.aa~3:line10$", flags=TestGrep._reflags)
538
self.assertContainsRe(out, "^file1.aa~4:line10$", flags=TestGrep._reflags)
539
self.assertContainsRe(out, "^file1.aa~5:line10$", flags=TestGrep._reflags)
540
self.assertNotContainsRe(out, "file0.txt", flags=TestGrep._reflags)
541
541
# finds line1 and line10 over 3 revisions
542
542
self.assertEqual(len(out.splitlines()), 6)
652
652
out, err = self.run_bzr(['grep', '-r', 'last:1',
653
653
'--include', '*.aa', '--include', '*.bb', 'l..e1'])
654
self.assertContainsRe(out, b"^dir0/file0.aa~.:line1$", flags=TestGrep._reflags)
655
self.assertContainsRe(out, b"^dir1/file1.bb~.:line1$", flags=TestGrep._reflags)
656
self.assertContainsRe(out, b"^dir0/file0.aa~.:line10$", flags=TestGrep._reflags)
657
self.assertContainsRe(out, b"^dir1/file1.bb~.:line10$", flags=TestGrep._reflags)
658
self.assertNotContainsRe(out, b"file1.cc", flags=TestGrep._reflags)
654
self.assertContainsRe(out, "^dir0/file0.aa~.:line1$", flags=TestGrep._reflags)
655
self.assertContainsRe(out, "^dir1/file1.bb~.:line1$", flags=TestGrep._reflags)
656
self.assertContainsRe(out, "^dir0/file0.aa~.:line10$", flags=TestGrep._reflags)
657
self.assertContainsRe(out, "^dir1/file1.bb~.:line10$", flags=TestGrep._reflags)
658
self.assertNotContainsRe(out, "file1.cc", flags=TestGrep._reflags)
659
659
# finds line1 and line10
660
660
self.assertEqual(len(out.splitlines()), 4)
662
662
out, err = self.run_bzr(['grep', '-r', 'last:1',
663
663
'--include', '*.aa', '--include', '*.bb', 'line1'])
664
self.assertContainsRe(out, b"^dir0/file0.aa~.:line1$", flags=TestGrep._reflags)
665
self.assertContainsRe(out, b"^dir1/file1.bb~.:line1$", flags=TestGrep._reflags)
666
self.assertContainsRe(out, b"^dir0/file0.aa~.:line10$", flags=TestGrep._reflags)
667
self.assertContainsRe(out, b"^dir1/file1.bb~.:line10$", flags=TestGrep._reflags)
668
self.assertNotContainsRe(out, b"file1.cc", flags=TestGrep._reflags)
664
self.assertContainsRe(out, "^dir0/file0.aa~.:line1$", flags=TestGrep._reflags)
665
self.assertContainsRe(out, "^dir1/file1.bb~.:line1$", flags=TestGrep._reflags)
666
self.assertContainsRe(out, "^dir0/file0.aa~.:line10$", flags=TestGrep._reflags)
667
self.assertContainsRe(out, "^dir1/file1.bb~.:line10$", flags=TestGrep._reflags)
668
self.assertNotContainsRe(out, "file1.cc", flags=TestGrep._reflags)
669
669
# finds line1 and line10
670
670
self.assertEqual(len(out.splitlines()), 4)
688
688
out, err = self.run_bzr(['grep', '--include', '*.aa',
689
689
'--include', '*.bb', 'l.n.1'])
690
self.assertContainsRe(out, b"^dir0/file0.aa:line1$", flags=TestGrep._reflags)
691
self.assertContainsRe(out, b"^dir1/file1.bb:line1$", flags=TestGrep._reflags)
692
self.assertContainsRe(out, b"^dir0/file0.aa:line10$", flags=TestGrep._reflags)
693
self.assertContainsRe(out, b"^dir1/file1.bb:line10$", flags=TestGrep._reflags)
694
self.assertNotContainsRe(out, b"file1.cc", flags=TestGrep._reflags)
690
self.assertContainsRe(out, "^dir0/file0.aa:line1$", flags=TestGrep._reflags)
691
self.assertContainsRe(out, "^dir1/file1.bb:line1$", flags=TestGrep._reflags)
692
self.assertContainsRe(out, "^dir0/file0.aa:line10$", flags=TestGrep._reflags)
693
self.assertContainsRe(out, "^dir1/file1.bb:line10$", flags=TestGrep._reflags)
694
self.assertNotContainsRe(out, "file1.cc", flags=TestGrep._reflags)
695
695
# finds line1 and line10
696
696
self.assertEqual(len(out.splitlines()), 4)
698
698
out, err = self.run_bzr(['grep', '--include', '*.aa',
699
699
'--include', '*.bb', 'line1'])
700
self.assertContainsRe(out, b"^dir0/file0.aa:line1$", flags=TestGrep._reflags)
701
self.assertContainsRe(out, b"^dir1/file1.bb:line1$", flags=TestGrep._reflags)
702
self.assertContainsRe(out, b"^dir0/file0.aa:line10$", flags=TestGrep._reflags)
703
self.assertContainsRe(out, b"^dir1/file1.bb:line10$", flags=TestGrep._reflags)
704
self.assertNotContainsRe(out, b"file1.cc", flags=TestGrep._reflags)
700
self.assertContainsRe(out, "^dir0/file0.aa:line1$", flags=TestGrep._reflags)
701
self.assertContainsRe(out, "^dir1/file1.bb:line1$", flags=TestGrep._reflags)
702
self.assertContainsRe(out, "^dir0/file0.aa:line10$", flags=TestGrep._reflags)
703
self.assertContainsRe(out, "^dir1/file1.bb:line10$", flags=TestGrep._reflags)
704
self.assertNotContainsRe(out, "file1.cc", flags=TestGrep._reflags)
705
705
# finds line1 and line10
706
706
self.assertEqual(len(out.splitlines()), 4)
724
724
out, err = self.run_bzr(['grep', '-r', 'last:1',
725
725
'--exclude', '*.cc', 'l..e1'])
726
self.assertContainsRe(out, b"^dir0/file0.aa~.:line1", flags=TestGrep._reflags)
727
self.assertContainsRe(out, b"^dir1/file1.bb~.:line1", flags=TestGrep._reflags)
728
self.assertNotContainsRe(out, b"file1.cc", flags=TestGrep._reflags)
726
self.assertContainsRe(out, "^dir0/file0.aa~.:line1", flags=TestGrep._reflags)
727
self.assertContainsRe(out, "^dir1/file1.bb~.:line1", flags=TestGrep._reflags)
728
self.assertNotContainsRe(out, "file1.cc", flags=TestGrep._reflags)
730
730
out, err = self.run_bzr(['grep', '-r', 'last:1',
731
731
'--exclude', '*.cc', 'line1'])
732
self.assertContainsRe(out, b"^dir0/file0.aa~.:line1", flags=TestGrep._reflags)
733
self.assertContainsRe(out, b"^dir1/file1.bb~.:line1", flags=TestGrep._reflags)
734
self.assertNotContainsRe(out, b"file1.cc", flags=TestGrep._reflags)
732
self.assertContainsRe(out, "^dir0/file0.aa~.:line1", flags=TestGrep._reflags)
733
self.assertContainsRe(out, "^dir1/file1.bb~.:line1", flags=TestGrep._reflags)
734
self.assertNotContainsRe(out, "file1.cc", flags=TestGrep._reflags)
736
736
def test_wtree_exclude_from_outside_dir(self):
737
737
"""(wtree) Ensure --exclude is respected during recursive search.
892
892
out, err = self.run_bzr(['grep', '-r', 'last:1', '.ine1'])
893
self.assertContainsRe(out, b"^dir1/file0.txt~.:line1", flags=TestGrep._reflags)
893
self.assertContainsRe(out, "^dir1/file0.txt~.:line1", flags=TestGrep._reflags)
895
895
out, err = self.run_bzr(['grep', '-r', 'last:1', '--from-root', 'l.ne1'])
896
self.assertContainsRe(out, b"^dir0/dir1/file0.txt~.:line1", flags=TestGrep._reflags)
896
self.assertContainsRe(out, "^dir0/dir1/file0.txt~.:line1", flags=TestGrep._reflags)
898
898
out, err = self.run_bzr(['grep', '-r', 'last:1', '--no-recursive', 'line1'])
899
self.assertNotContainsRe(out, b"file0.txt", flags=TestGrep._reflags)
899
self.assertNotContainsRe(out, "file0.txt", flags=TestGrep._reflags)
901
901
out, err = self.run_bzr(['grep', '-r', 'last:1', 'lin.1'])
902
self.assertContainsRe(out, b"^dir1/file0.txt~.:line1", flags=TestGrep._reflags)
902
self.assertContainsRe(out, "^dir1/file0.txt~.:line1", flags=TestGrep._reflags)
904
904
out, err = self.run_bzr(['grep', '-r', 'last:1', '--from-root', 'line1'])
905
self.assertContainsRe(out, b"^dir0/dir1/file0.txt~.:line1", flags=TestGrep._reflags)
905
self.assertContainsRe(out, "^dir0/dir1/file0.txt~.:line1", flags=TestGrep._reflags)
907
907
out, err = self.run_bzr(['grep', '-r', 'last:1', '--no-recursive', 'line1'])
908
self.assertNotContainsRe(out, b"file0.txt", flags=TestGrep._reflags)
908
self.assertNotContainsRe(out, "file0.txt", flags=TestGrep._reflags)
909
909
self.assertEqual(len(out.splitlines()), 0)
911
911
def test_wtree_file_within_dir_two_levels(self):
922
922
out, err = self.run_bzr(['grep', 'l[hij]ne1'])
923
self.assertContainsRe(out, b"^dir1/file0.txt:line1", flags=TestGrep._reflags)
923
self.assertContainsRe(out, "^dir1/file0.txt:line1", flags=TestGrep._reflags)
925
925
out, err = self.run_bzr(['grep', '--from-root', 'l.ne1'])
926
self.assertContainsRe(out, b"^dir0/dir1/file0.txt:line1", flags=TestGrep._reflags)
926
self.assertContainsRe(out, "^dir0/dir1/file0.txt:line1", flags=TestGrep._reflags)
928
928
out, err = self.run_bzr(['grep', '--no-recursive', 'lin.1'])
929
self.assertNotContainsRe(out, b"file0.txt", flags=TestGrep._reflags)
929
self.assertNotContainsRe(out, "file0.txt", flags=TestGrep._reflags)
931
931
out, err = self.run_bzr(['grep', 'line1'])
932
self.assertContainsRe(out, b"^dir1/file0.txt:line1", flags=TestGrep._reflags)
932
self.assertContainsRe(out, "^dir1/file0.txt:line1", flags=TestGrep._reflags)
934
934
out, err = self.run_bzr(['grep', '--from-root', 'line1'])
935
self.assertContainsRe(out, b"^dir0/dir1/file0.txt:line1", flags=TestGrep._reflags)
935
self.assertContainsRe(out, "^dir0/dir1/file0.txt:line1", flags=TestGrep._reflags)
937
937
out, err = self.run_bzr(['grep', '--no-recursive', 'line1'])
938
self.assertNotContainsRe(out, b"file0.txt", flags=TestGrep._reflags)
938
self.assertNotContainsRe(out, "file0.txt", flags=TestGrep._reflags)
940
940
def test_versioned_ignore_case_no_match(self):
941
941
"""(versioned) Match fails without --ignore-case.
1079
1079
out, err = self.run_bzr(['grep', '-r', 'last:1',
1080
1080
'--line-number', 'li.e3', 'file0.txt'])
1081
self.assertContainsRe(out, b"file0.txt~.:3:line3", flags=TestGrep._reflags)
1081
self.assertContainsRe(out, "file0.txt~.:3:line3", flags=TestGrep._reflags)
1083
1083
out, err = self.run_bzr(['grep', '-r', 'last:1',
1084
1084
'--line-number', 'line3', 'file0.txt'])
1085
self.assertContainsRe(out, b"file0.txt~.:3:line3", flags=TestGrep._reflags)
1085
self.assertContainsRe(out, "file0.txt~.:3:line3", flags=TestGrep._reflags)
1087
1087
out, err = self.run_bzr(['grep', '-r', 'last:1',
1088
1088
'-n', 'line1', 'file0.txt'])
1089
self.assertContainsRe(out, b"file0.txt~.:1:line1", flags=TestGrep._reflags)
1089
self.assertContainsRe(out, "file0.txt~.:1:line1", flags=TestGrep._reflags)
1091
1091
out, err = self.run_bzr(['grep', '-n', 'line[0-9]', 'file0.txt'])
1092
self.assertContainsRe(out, b"file0.txt:3:line3", flags=TestGrep._reflags)
1092
self.assertContainsRe(out, "file0.txt:3:line3", flags=TestGrep._reflags)
1094
1094
def test_wtree_with_line_number(self):
1095
1095
"""(wtree) Search for pattern with --line-number.
1126
1126
# rev 2 should not have text 'v3'
1127
1127
out, err = self.run_bzr(['grep', '-r', '2', 'v3', fname])
1128
self.assertNotContainsRe(out, b"file0.txt", flags=TestGrep._reflags)
1128
self.assertNotContainsRe(out, "file0.txt", flags=TestGrep._reflags)
1130
1130
# rev 3 should not have text 'v3'
1131
1131
out, err = self.run_bzr(['grep', '-r', '3', 'v3', fname])
1132
self.assertContainsRe(out, b"file0.txt~3:v3.*", flags=TestGrep._reflags)
1132
self.assertContainsRe(out, "file0.txt~3:v3.*", flags=TestGrep._reflags)
1134
1134
# rev 3 should not have text 'v3' with line number
1135
1135
out, err = self.run_bzr(['grep', '-r', '3', '-n', 'v3', fname])
1136
self.assertContainsRe(out, b"file0.txt~3:2:v3.*", flags=TestGrep._reflags)
1136
self.assertContainsRe(out, "file0.txt~3:2:v3.*", flags=TestGrep._reflags)
1138
1138
# rev 2 should not have text 'v3'
1139
1139
out, err = self.run_bzr(['grep', '-r', '2', '[tuv]3', fname])
1140
self.assertNotContainsRe(out, b"file0.txt", flags=TestGrep._reflags)
1140
self.assertNotContainsRe(out, "file0.txt", flags=TestGrep._reflags)
1142
1142
# rev 3 should not have text 'v3'
1143
1143
out, err = self.run_bzr(['grep', '-r', '3', '[tuv]3', fname])
1144
self.assertContainsRe(out, b"file0.txt~3:v3.*", flags=TestGrep._reflags)
1144
self.assertContainsRe(out, "file0.txt~3:v3.*", flags=TestGrep._reflags)
1146
1146
# rev 3 should not have text 'v3' with line number
1147
1147
out, err = self.run_bzr(['grep', '-r', '3', '-n', '[tuv]3', fname])
1148
self.assertContainsRe(out, b"file0.txt~3:2:v3.*", flags=TestGrep._reflags)
1148
self.assertContainsRe(out, "file0.txt~3:2:v3.*", flags=TestGrep._reflags)
1150
1150
def test_revno_basic_history_grep_full(self):
1151
1151
"""Search for pattern in specific revision number in a file.
1163
1163
# rev 2 should not have text 'v3'
1164
1164
out, err = self.run_bzr(['grep', '-r', '2', 'v3'])
1165
self.assertNotContainsRe(out, b"file0.txt", flags=TestGrep._reflags)
1165
self.assertNotContainsRe(out, "file0.txt", flags=TestGrep._reflags)
1167
1167
# rev 3 should not have text 'v3'
1168
1168
out, err = self.run_bzr(['grep', '-r', '3', 'v3'])
1169
self.assertContainsRe(out, b"file0.txt~3:v3", flags=TestGrep._reflags)
1169
self.assertContainsRe(out, "file0.txt~3:v3", flags=TestGrep._reflags)
1171
1171
# rev 3 should not have text 'v3' with line number
1172
1172
out, err = self.run_bzr(['grep', '-r', '3', '-n', 'v3'])
1173
self.assertContainsRe(out, b"file0.txt~3:1:v3", flags=TestGrep._reflags)
1173
self.assertContainsRe(out, "file0.txt~3:1:v3", flags=TestGrep._reflags)
1175
1175
# rev 2 should not have text 'v3'
1176
1176
out, err = self.run_bzr(['grep', '-r', '2', '[tuv]3'])
1177
self.assertNotContainsRe(out, b"file0.txt", flags=TestGrep._reflags)
1177
self.assertNotContainsRe(out, "file0.txt", flags=TestGrep._reflags)
1179
1179
# rev 3 should not have text 'v3'
1180
1180
out, err = self.run_bzr(['grep', '-r', '3', '[tuv]3'])
1181
self.assertContainsRe(out, b"file0.txt~3:v3", flags=TestGrep._reflags)
1181
self.assertContainsRe(out, "file0.txt~3:v3", flags=TestGrep._reflags)
1183
1183
# rev 3 should not have text 'v3' with line number
1184
1184
out, err = self.run_bzr(['grep', '-r', '3', '-n', '[tuv]3'])
1185
self.assertContainsRe(out, b"file0.txt~3:1:v3", flags=TestGrep._reflags)
1185
self.assertContainsRe(out, "file0.txt~3:1:v3", flags=TestGrep._reflags)
1187
1187
def test_revno_versioned_file_in_dir(self):
1188
1188
"""Grep specific version of file withing dir.
1238
1238
self.assertEqual(len(out.splitlines()), 0)
1240
1240
out, err = self.run_bzr(['grep', '-r', '..6', 'v3'])
1241
self.assertContainsRe(out, b"file0.txt~3:v3", flags=TestGrep._reflags)
1242
self.assertContainsRe(out, b"file0.txt~4:v3", flags=TestGrep._reflags)
1243
self.assertContainsRe(out, b"file0.txt~5:v3", flags=TestGrep._reflags)
1244
self.assertContainsRe(out, b"file0.txt~6:v3", flags=TestGrep._reflags)
1241
self.assertContainsRe(out, "file0.txt~3:v3", flags=TestGrep._reflags)
1242
self.assertContainsRe(out, "file0.txt~4:v3", flags=TestGrep._reflags)
1243
self.assertContainsRe(out, "file0.txt~5:v3", flags=TestGrep._reflags)
1244
self.assertContainsRe(out, "file0.txt~6:v3", flags=TestGrep._reflags)
1245
1245
self.assertEqual(len(out.splitlines()), 4)
1247
1247
out, err = self.run_bzr(['grep', '-r', '..', 'v3'])
1248
self.assertContainsRe(out, b"file0.txt~3:v3", flags=TestGrep._reflags)
1249
self.assertContainsRe(out, b"file0.txt~4:v3", flags=TestGrep._reflags)
1250
self.assertContainsRe(out, b"file0.txt~5:v3", flags=TestGrep._reflags)
1251
self.assertContainsRe(out, b"file0.txt~6:v3", flags=TestGrep._reflags)
1248
self.assertContainsRe(out, "file0.txt~3:v3", flags=TestGrep._reflags)
1249
self.assertContainsRe(out, "file0.txt~4:v3", flags=TestGrep._reflags)
1250
self.assertContainsRe(out, "file0.txt~5:v3", flags=TestGrep._reflags)
1251
self.assertContainsRe(out, "file0.txt~6:v3", flags=TestGrep._reflags)
1252
1252
self.assertEqual(len(out.splitlines()), 4)
1254
1254
out, err = self.run_bzr(['grep', '-r', '1..5', 'v3'])
1255
self.assertContainsRe(out, b"file0.txt~3:v3", flags=TestGrep._reflags)
1256
self.assertContainsRe(out, b"file0.txt~4:v3", flags=TestGrep._reflags)
1257
self.assertContainsRe(out, b"file0.txt~5:v3", flags=TestGrep._reflags)
1255
self.assertContainsRe(out, "file0.txt~3:v3", flags=TestGrep._reflags)
1256
self.assertContainsRe(out, "file0.txt~4:v3", flags=TestGrep._reflags)
1257
self.assertContainsRe(out, "file0.txt~5:v3", flags=TestGrep._reflags)
1258
1258
self.assertNotContainsRe(out, "file0.txt~6:v3", flags=TestGrep._reflags)
1259
1259
self.assertEqual(len(out.splitlines()), 3)
1261
1261
out, err = self.run_bzr(['grep', '-r', '5..1', 'v3'])
1262
self.assertContainsRe(out, b"file0.txt~3:v3", flags=TestGrep._reflags)
1263
self.assertContainsRe(out, b"file0.txt~4:v3", flags=TestGrep._reflags)
1264
self.assertContainsRe(out, b"file0.txt~5:v3", flags=TestGrep._reflags)
1262
self.assertContainsRe(out, "file0.txt~3:v3", flags=TestGrep._reflags)
1263
self.assertContainsRe(out, "file0.txt~4:v3", flags=TestGrep._reflags)
1264
self.assertContainsRe(out, "file0.txt~5:v3", flags=TestGrep._reflags)
1265
1265
self.assertNotContainsRe(out, "file0.txt~6:v3", flags=TestGrep._reflags)
1266
1266
self.assertEqual(len(out.splitlines()), 3)
1268
1268
out, err = self.run_bzr(['grep', '-r', '1..', '[tuv]3'])
1269
self.assertContainsRe(out, b"file0.txt~3:v3", flags=TestGrep._reflags)
1270
self.assertContainsRe(out, b"file0.txt~4:v3", flags=TestGrep._reflags)
1271
self.assertContainsRe(out, b"file0.txt~5:v3", flags=TestGrep._reflags)
1272
self.assertContainsRe(out, b"file0.txt~6:v3", flags=TestGrep._reflags)
1269
self.assertContainsRe(out, "file0.txt~3:v3", flags=TestGrep._reflags)
1270
self.assertContainsRe(out, "file0.txt~4:v3", flags=TestGrep._reflags)
1271
self.assertContainsRe(out, "file0.txt~5:v3", flags=TestGrep._reflags)
1272
self.assertContainsRe(out, "file0.txt~6:v3", flags=TestGrep._reflags)
1273
1273
self.assertEqual(len(out.splitlines()), 4)
1275
1275
out, err = self.run_bzr(['grep', '-r', '1..5', '[tuv]3'])
1276
self.assertContainsRe(out, b"file0.txt~3:v3", flags=TestGrep._reflags)
1277
self.assertContainsRe(out, b"file0.txt~4:v3", flags=TestGrep._reflags)
1278
self.assertContainsRe(out, b"file0.txt~5:v3", flags=TestGrep._reflags)
1276
self.assertContainsRe(out, "file0.txt~3:v3", flags=TestGrep._reflags)
1277
self.assertContainsRe(out, "file0.txt~4:v3", flags=TestGrep._reflags)
1278
self.assertContainsRe(out, "file0.txt~5:v3", flags=TestGrep._reflags)
1279
1279
self.assertNotContainsRe(out, "file0.txt~6:v3", flags=TestGrep._reflags)
1280
1280
self.assertEqual(len(out.splitlines()), 3)
1282
1282
out, err = self.run_bzr(['grep', '-r', '5..1', '[tuv]3'])
1283
self.assertContainsRe(out, b"file0.txt~3:v3", flags=TestGrep._reflags)
1284
self.assertContainsRe(out, b"file0.txt~4:v3", flags=TestGrep._reflags)
1285
self.assertContainsRe(out, b"file0.txt~5:v3", flags=TestGrep._reflags)
1283
self.assertContainsRe(out, "file0.txt~3:v3", flags=TestGrep._reflags)
1284
self.assertContainsRe(out, "file0.txt~4:v3", flags=TestGrep._reflags)
1285
self.assertContainsRe(out, "file0.txt~5:v3", flags=TestGrep._reflags)
1286
1286
self.assertNotContainsRe(out, "file0.txt~6:v3", flags=TestGrep._reflags)
1287
1287
self.assertEqual(len(out.splitlines()), 3)
1300
1300
self._update_file('dir0/file0.txt', "v6 text\n") # rev6
1302
1302
out, err = self.run_bzr(['grep', '-r', '2..5', 'v3'])
1303
self.assertContainsRe(out, b"^dir0/file0.txt~3:v3", flags=TestGrep._reflags)
1304
self.assertContainsRe(out, b"^dir0/file0.txt~4:v3", flags=TestGrep._reflags)
1305
self.assertContainsRe(out, b"^dir0/file0.txt~5:v3", flags=TestGrep._reflags)
1303
self.assertContainsRe(out, "^dir0/file0.txt~3:v3", flags=TestGrep._reflags)
1304
self.assertContainsRe(out, "^dir0/file0.txt~4:v3", flags=TestGrep._reflags)
1305
self.assertContainsRe(out, "^dir0/file0.txt~5:v3", flags=TestGrep._reflags)
1306
1306
self.assertNotContainsRe(out, "^dir0/file0.txt~6:v3", flags=TestGrep._reflags)
1307
1307
self.assertEqual(len(out.splitlines()), 3)
1309
1309
out, err = self.run_bzr(['grep', '-r', '2..5', '[tuv]3'])
1310
self.assertContainsRe(out, b"^dir0/file0.txt~3:v3", flags=TestGrep._reflags)
1311
self.assertContainsRe(out, b"^dir0/file0.txt~4:v3", flags=TestGrep._reflags)
1312
self.assertContainsRe(out, b"^dir0/file0.txt~5:v3", flags=TestGrep._reflags)
1310
self.assertContainsRe(out, "^dir0/file0.txt~3:v3", flags=TestGrep._reflags)
1311
self.assertContainsRe(out, "^dir0/file0.txt~4:v3", flags=TestGrep._reflags)
1312
self.assertContainsRe(out, "^dir0/file0.txt~5:v3", flags=TestGrep._reflags)
1313
1313
self.assertNotContainsRe(out, "^dir0/file0.txt~6:v3", flags=TestGrep._reflags)
1314
1314
self.assertEqual(len(out.splitlines()), 3)
1327
1327
self._update_file('dir0/file0.txt', "v6 text\n") # rev6
1329
1329
out, err = self.run_bzr(['grep', '-r', '2..5', 'v3', 'dir0'])
1330
self.assertContainsRe(out, b"^dir0/file0.txt~3:v3", flags=TestGrep._reflags)
1331
self.assertContainsRe(out, b"^dir0/file0.txt~4:v3", flags=TestGrep._reflags)
1332
self.assertContainsRe(out, b"^dir0/file0.txt~5:v3", flags=TestGrep._reflags)
1330
self.assertContainsRe(out, "^dir0/file0.txt~3:v3", flags=TestGrep._reflags)
1331
self.assertContainsRe(out, "^dir0/file0.txt~4:v3", flags=TestGrep._reflags)
1332
self.assertContainsRe(out, "^dir0/file0.txt~5:v3", flags=TestGrep._reflags)
1333
1333
self.assertNotContainsRe(out, "^dir0/file0.txt~6:v3", flags=TestGrep._reflags)
1335
1335
out, err = self.run_bzr(['grep', '-r', '2..5', '[tuv]3', 'dir0'])
1336
self.assertContainsRe(out, b"^dir0/file0.txt~3:v3", flags=TestGrep._reflags)
1337
self.assertContainsRe(out, b"^dir0/file0.txt~4:v3", flags=TestGrep._reflags)
1338
self.assertContainsRe(out, b"^dir0/file0.txt~5:v3", flags=TestGrep._reflags)
1336
self.assertContainsRe(out, "^dir0/file0.txt~3:v3", flags=TestGrep._reflags)
1337
self.assertContainsRe(out, "^dir0/file0.txt~4:v3", flags=TestGrep._reflags)
1338
self.assertContainsRe(out, "^dir0/file0.txt~5:v3", flags=TestGrep._reflags)
1339
1339
self.assertNotContainsRe(out, "^dir0/file0.txt~6:v3", flags=TestGrep._reflags)
1341
1341
def test_levels(self):
1358
1358
out, err = self.run_bzr(['ci', '-m', 'merged'])
1360
1360
out, err = self.run_bzr(['grep', 'line1'])
1361
self.assertContainsRe(out, b"file0.txt:line1", flags=TestGrep._reflags)
1362
self.assertContainsRe(out, b"file1.txt:line1", flags=TestGrep._reflags)
1361
self.assertContainsRe(out, "file0.txt:line1", flags=TestGrep._reflags)
1362
self.assertContainsRe(out, "file1.txt:line1", flags=TestGrep._reflags)
1364
1364
# levels should be ignored by wtree grep
1365
1365
out, err = self.run_bzr(['grep', '--levels=0', 'line1'])
1366
self.assertContainsRe(out, b"^file0.txt:line1$", flags=TestGrep._reflags)
1367
self.assertContainsRe(out, b"^file1.txt:line1$", flags=TestGrep._reflags)
1368
self.assertContainsRe(out, b"^file0.txt:line10$", flags=TestGrep._reflags)
1369
self.assertContainsRe(out, b"^file1.txt:line10$", flags=TestGrep._reflags)
1366
self.assertContainsRe(out, "^file0.txt:line1$", flags=TestGrep._reflags)
1367
self.assertContainsRe(out, "^file1.txt:line1$", flags=TestGrep._reflags)
1368
self.assertContainsRe(out, "^file0.txt:line10$", flags=TestGrep._reflags)
1369
self.assertContainsRe(out, "^file1.txt:line10$", flags=TestGrep._reflags)
1370
1370
self.assertEqual(len(out.splitlines()), 4)
1372
1372
out, err = self.run_bzr(['grep', '-r', 'last:1..', '--levels=0', 'line1'])
1373
self.assertContainsRe(out, b"^file0.txt~2:line1$", flags=TestGrep._reflags)
1374
self.assertContainsRe(out, b"^file1.txt~2:line1$", flags=TestGrep._reflags)
1375
self.assertContainsRe(out, b"^file0.txt~1.1.1:line1$", flags=TestGrep._reflags)
1376
self.assertContainsRe(out, b"^file1.txt~1.1.1:line1$", flags=TestGrep._reflags)
1377
self.assertContainsRe(out, b"^file0.txt~2:line10$", flags=TestGrep._reflags)
1378
self.assertContainsRe(out, b"^file1.txt~2:line10$", flags=TestGrep._reflags)
1379
self.assertContainsRe(out, b"^file0.txt~1.1.1:line10$", flags=TestGrep._reflags)
1380
self.assertContainsRe(out, b"^file1.txt~1.1.1:line10$", flags=TestGrep._reflags)
1373
self.assertContainsRe(out, "^file0.txt~2:line1$", flags=TestGrep._reflags)
1374
self.assertContainsRe(out, "^file1.txt~2:line1$", flags=TestGrep._reflags)
1375
self.assertContainsRe(out, "^file0.txt~1.1.1:line1$", flags=TestGrep._reflags)
1376
self.assertContainsRe(out, "^file1.txt~1.1.1:line1$", flags=TestGrep._reflags)
1377
self.assertContainsRe(out, "^file0.txt~2:line10$", flags=TestGrep._reflags)
1378
self.assertContainsRe(out, "^file1.txt~2:line10$", flags=TestGrep._reflags)
1379
self.assertContainsRe(out, "^file0.txt~1.1.1:line10$", flags=TestGrep._reflags)
1380
self.assertContainsRe(out, "^file1.txt~1.1.1:line10$", flags=TestGrep._reflags)
1381
1381
self.assertEqual(len(out.splitlines()), 8)
1383
1383
out, err = self.run_bzr(['grep', '-r', '-1..', '-n', '--levels=0', 'line1'])
1384
self.assertContainsRe(out, b"^file0.txt~2:1:line1$", flags=TestGrep._reflags)
1385
self.assertContainsRe(out, b"^file1.txt~2:1:line1$", flags=TestGrep._reflags)
1386
self.assertContainsRe(out, b"^file0.txt~1.1.1:1:line1$", flags=TestGrep._reflags)
1387
self.assertContainsRe(out, b"^file1.txt~1.1.1:1:line1$", flags=TestGrep._reflags)
1388
self.assertContainsRe(out, b"^file0.txt~2:10:line10$", flags=TestGrep._reflags)
1389
self.assertContainsRe(out, b"^file1.txt~2:10:line10$", flags=TestGrep._reflags)
1390
self.assertContainsRe(out, b"^file0.txt~1.1.1:10:line10$", flags=TestGrep._reflags)
1391
self.assertContainsRe(out, b"^file1.txt~1.1.1:10:line10$", flags=TestGrep._reflags)
1384
self.assertContainsRe(out, "^file0.txt~2:1:line1$", flags=TestGrep._reflags)
1385
self.assertContainsRe(out, "^file1.txt~2:1:line1$", flags=TestGrep._reflags)
1386
self.assertContainsRe(out, "^file0.txt~1.1.1:1:line1$", flags=TestGrep._reflags)
1387
self.assertContainsRe(out, "^file1.txt~1.1.1:1:line1$", flags=TestGrep._reflags)
1388
self.assertContainsRe(out, "^file0.txt~2:10:line10$", flags=TestGrep._reflags)
1389
self.assertContainsRe(out, "^file1.txt~2:10:line10$", flags=TestGrep._reflags)
1390
self.assertContainsRe(out, "^file0.txt~1.1.1:10:line10$", flags=TestGrep._reflags)
1391
self.assertContainsRe(out, "^file1.txt~1.1.1:10:line10$", flags=TestGrep._reflags)
1392
1392
self.assertEqual(len(out.splitlines()), 8)
1394
1394
# levels should be ignored by wtree grep
1395
1395
out, err = self.run_bzr(['grep', '--levels=0', 'l.ne1'])
1396
self.assertContainsRe(out, b"^file0.txt:line1$", flags=TestGrep._reflags)
1397
self.assertContainsRe(out, b"^file1.txt:line1$", flags=TestGrep._reflags)
1398
self.assertContainsRe(out, b"^file0.txt:line10$", flags=TestGrep._reflags)
1399
self.assertContainsRe(out, b"^file1.txt:line10$", flags=TestGrep._reflags)
1396
self.assertContainsRe(out, "^file0.txt:line1$", flags=TestGrep._reflags)
1397
self.assertContainsRe(out, "^file1.txt:line1$", flags=TestGrep._reflags)
1398
self.assertContainsRe(out, "^file0.txt:line10$", flags=TestGrep._reflags)
1399
self.assertContainsRe(out, "^file1.txt:line10$", flags=TestGrep._reflags)
1400
1400
self.assertEqual(len(out.splitlines()), 4)
1402
1402
out, err = self.run_bzr(['grep', '-r', 'last:1..', '--levels=0', 'lin.1'])
1403
self.assertContainsRe(out, b"^file0.txt~2:line1$", flags=TestGrep._reflags)
1404
self.assertContainsRe(out, b"^file1.txt~2:line1$", flags=TestGrep._reflags)
1405
self.assertContainsRe(out, b"^file0.txt~1.1.1:line1$", flags=TestGrep._reflags)
1406
self.assertContainsRe(out, b"^file1.txt~1.1.1:line1$", flags=TestGrep._reflags)
1407
self.assertContainsRe(out, b"^file0.txt~2:line10$", flags=TestGrep._reflags)
1408
self.assertContainsRe(out, b"^file1.txt~2:line10$", flags=TestGrep._reflags)
1409
self.assertContainsRe(out, b"^file0.txt~1.1.1:line10$", flags=TestGrep._reflags)
1410
self.assertContainsRe(out, b"^file1.txt~1.1.1:line10$", flags=TestGrep._reflags)
1403
self.assertContainsRe(out, "^file0.txt~2:line1$", flags=TestGrep._reflags)
1404
self.assertContainsRe(out, "^file1.txt~2:line1$", flags=TestGrep._reflags)
1405
self.assertContainsRe(out, "^file0.txt~1.1.1:line1$", flags=TestGrep._reflags)
1406
self.assertContainsRe(out, "^file1.txt~1.1.1:line1$", flags=TestGrep._reflags)
1407
self.assertContainsRe(out, "^file0.txt~2:line10$", flags=TestGrep._reflags)
1408
self.assertContainsRe(out, "^file1.txt~2:line10$", flags=TestGrep._reflags)
1409
self.assertContainsRe(out, "^file0.txt~1.1.1:line10$", flags=TestGrep._reflags)
1410
self.assertContainsRe(out, "^file1.txt~1.1.1:line10$", flags=TestGrep._reflags)
1411
1411
self.assertEqual(len(out.splitlines()), 8)
1413
1413
out, err = self.run_bzr(['grep', '-r', '-1..', '-n', '--levels=0', '.ine1'])
1414
self.assertContainsRe(out, b"file0.txt~2:1:line1", flags=TestGrep._reflags)
1415
self.assertContainsRe(out, b"file1.txt~2:1:line1", flags=TestGrep._reflags)
1416
self.assertContainsRe(out, b"file0.txt~1.1.1:1:line1", flags=TestGrep._reflags)
1417
self.assertContainsRe(out, b"file1.txt~1.1.1:1:line1", flags=TestGrep._reflags)
1414
self.assertContainsRe(out, "file0.txt~2:1:line1", flags=TestGrep._reflags)
1415
self.assertContainsRe(out, "file1.txt~2:1:line1", flags=TestGrep._reflags)
1416
self.assertContainsRe(out, "file0.txt~1.1.1:1:line1", flags=TestGrep._reflags)
1417
self.assertContainsRe(out, "file1.txt~1.1.1:1:line1", flags=TestGrep._reflags)
1419
1419
def test_dotted_rev_grep(self):
1420
1420
"""Grep in dotted revs
1539
1539
out, err = self.run_bzr(['grep', '--files-with-matches', 'HELLO'])
1541
self.assertContainsRe(out, b"^file0.txt$", flags=TestGrep._reflags)
1542
self.assertContainsRe(out, b"^dir0/file00.txt$", flags=TestGrep._reflags)
1541
self.assertContainsRe(out, "^file0.txt$", flags=TestGrep._reflags)
1542
self.assertContainsRe(out, "^dir0/file00.txt$", flags=TestGrep._reflags)
1543
1543
self.assertEqual(len(out.splitlines()), 2)
1546
1546
out, err = self.run_bzr(['grep', '--files-with-matches', 'HE.LO'])
1548
self.assertContainsRe(out, b"^file0.txt$", flags=TestGrep._reflags)
1549
self.assertContainsRe(out, b"^dir0/file00.txt$", flags=TestGrep._reflags)
1548
self.assertContainsRe(out, "^file0.txt$", flags=TestGrep._reflags)
1549
self.assertContainsRe(out, "^dir0/file00.txt$", flags=TestGrep._reflags)
1550
1550
self.assertEqual(len(out.splitlines()), 2)
1553
1553
out, err = self.run_bzr(['grep', '-l', 'HELLO'])
1555
self.assertContainsRe(out, b"^file0.txt$", flags=TestGrep._reflags)
1556
self.assertContainsRe(out, b"^dir0/file00.txt$", flags=TestGrep._reflags)
1555
self.assertContainsRe(out, "^file0.txt$", flags=TestGrep._reflags)
1556
self.assertContainsRe(out, "^dir0/file00.txt$", flags=TestGrep._reflags)
1557
1557
self.assertEqual(len(out.splitlines()), 2)
1560
1560
out, err = self.run_bzr(['grep', '-l', 'HE.LO'])
1562
self.assertContainsRe(out, b"^file0.txt$", flags=TestGrep._reflags)
1563
self.assertContainsRe(out, b"^dir0/file00.txt$", flags=TestGrep._reflags)
1562
self.assertContainsRe(out, "^file0.txt$", flags=TestGrep._reflags)
1563
self.assertContainsRe(out, "^dir0/file00.txt$", flags=TestGrep._reflags)
1564
1564
self.assertEqual(len(out.splitlines()), 2)
1567
1567
out, err = self.run_bzr(['grep', '-l', 'HELLO', 'dir0', 'file1.txt'])
1569
self.assertContainsRe(out, b"^dir0/file00.txt$", flags=TestGrep._reflags)
1569
self.assertContainsRe(out, "^dir0/file00.txt$", flags=TestGrep._reflags)
1570
1570
self.assertEqual(len(out.splitlines()), 1)
1573
1573
out, err = self.run_bzr(['grep', '-l', '.ELLO', 'dir0', 'file1.txt'])
1575
self.assertContainsRe(out, b"^dir0/file00.txt$", flags=TestGrep._reflags)
1575
self.assertContainsRe(out, "^dir0/file00.txt$", flags=TestGrep._reflags)
1576
1576
self.assertEqual(len(out.splitlines()), 1)
1579
1579
out, err = self.run_bzr(['grep', '-l', 'HELLO', 'file0.txt'])
1581
self.assertContainsRe(out, b"^file0.txt$", flags=TestGrep._reflags)
1581
self.assertContainsRe(out, "^file0.txt$", flags=TestGrep._reflags)
1582
1582
self.assertEqual(len(out.splitlines()), 1)
1585
1585
out, err = self.run_bzr(['grep', '-l', '.ELLO', 'file0.txt'])
1587
self.assertContainsRe(out, b"^file0.txt$", flags=TestGrep._reflags)
1587
self.assertContainsRe(out, "^file0.txt$", flags=TestGrep._reflags)
1588
1588
self.assertEqual(len(out.splitlines()), 1)
1591
1591
out, err = self.run_bzr(['grep', '--no-recursive', '-l', 'HELLO'])
1593
self.assertContainsRe(out, b"^file0.txt$", flags=TestGrep._reflags)
1593
self.assertContainsRe(out, "^file0.txt$", flags=TestGrep._reflags)
1594
1594
self.assertEqual(len(out.splitlines()), 1)
1597
1597
out, err = self.run_bzr(['grep', '--no-recursive', '-l', '.ELLO'])
1599
self.assertContainsRe(out, b"^file0.txt$", flags=TestGrep._reflags)
1599
self.assertContainsRe(out, "^file0.txt$", flags=TestGrep._reflags)
1600
1600
self.assertEqual(len(out.splitlines()), 1)
1602
1602
def test_ver_files_with_matches(self):
1619
1619
out, err = self.run_bzr(['grep', '-r', '-1', '--files-with-matches',
1622
self.assertContainsRe(out, b"^file0.txt~7$", flags=TestGrep._reflags)
1623
self.assertContainsRe(out, b"^dir0/file00.txt~7$", flags=TestGrep._reflags)
1622
self.assertContainsRe(out, "^file0.txt~7$", flags=TestGrep._reflags)
1623
self.assertContainsRe(out, "^dir0/file00.txt~7$", flags=TestGrep._reflags)
1624
1624
self.assertEqual(len(out.splitlines()), 2)
1627
1627
out, err = self.run_bzr(['grep', '-r', '-1', '--files-with-matches',
1630
self.assertContainsRe(out, b"^file0.txt~7$", flags=TestGrep._reflags)
1631
self.assertContainsRe(out, b"^dir0/file00.txt~7$", flags=TestGrep._reflags)
1630
self.assertContainsRe(out, "^file0.txt~7$", flags=TestGrep._reflags)
1631
self.assertContainsRe(out, "^dir0/file00.txt~7$", flags=TestGrep._reflags)
1632
1632
self.assertEqual(len(out.splitlines()), 2)
1635
1635
out, err = self.run_bzr(['grep', '-r', '6..7', '--files-with-matches',
1638
self.assertContainsRe(out, b"^file0.txt~6$", flags=TestGrep._reflags)
1639
self.assertContainsRe(out, b"^file0.txt~7$", flags=TestGrep._reflags)
1640
self.assertContainsRe(out, b"^dir0/file00.txt~7$", flags=TestGrep._reflags)
1638
self.assertContainsRe(out, "^file0.txt~6$", flags=TestGrep._reflags)
1639
self.assertContainsRe(out, "^file0.txt~7$", flags=TestGrep._reflags)
1640
self.assertContainsRe(out, "^dir0/file00.txt~7$", flags=TestGrep._reflags)
1641
1641
self.assertEqual(len(out.splitlines()), 3)
1644
1644
out, err = self.run_bzr(['grep', '-r', '6..7', '--files-with-matches',
1647
self.assertContainsRe(out, b"^file0.txt~6$", flags=TestGrep._reflags)
1648
self.assertContainsRe(out, b"^file0.txt~7$", flags=TestGrep._reflags)
1649
self.assertContainsRe(out, b"^dir0/file00.txt~7$", flags=TestGrep._reflags)
1647
self.assertContainsRe(out, "^file0.txt~6$", flags=TestGrep._reflags)
1648
self.assertContainsRe(out, "^file0.txt~7$", flags=TestGrep._reflags)
1649
self.assertContainsRe(out, "^dir0/file00.txt~7$", flags=TestGrep._reflags)
1650
1650
self.assertEqual(len(out.splitlines()), 3)
1653
1653
out, err = self.run_bzr(['grep', '-r', '-1', '-l', 'HELLO'])
1655
self.assertContainsRe(out, b"^file0.txt~7$", flags=TestGrep._reflags)
1656
self.assertContainsRe(out, b"^dir0/file00.txt~7$", flags=TestGrep._reflags)
1655
self.assertContainsRe(out, "^file0.txt~7$", flags=TestGrep._reflags)
1656
self.assertContainsRe(out, "^dir0/file00.txt~7$", flags=TestGrep._reflags)
1657
1657
self.assertEqual(len(out.splitlines()), 2)
1660
1660
out, err = self.run_bzr(['grep', '-r', '-1', '-l', 'H.LLO'])
1662
self.assertContainsRe(out, b"^file0.txt~7$", flags=TestGrep._reflags)
1663
self.assertContainsRe(out, b"^dir0/file00.txt~7$", flags=TestGrep._reflags)
1662
self.assertContainsRe(out, "^file0.txt~7$", flags=TestGrep._reflags)
1663
self.assertContainsRe(out, "^dir0/file00.txt~7$", flags=TestGrep._reflags)
1664
1664
self.assertEqual(len(out.splitlines()), 2)
1667
1667
out, err = self.run_bzr(['grep', '-l', 'HELLO', '-r', '-1',
1668
1668
'dir0', 'file1.txt'])
1670
self.assertContainsRe(out, b"^dir0/file00.txt~7$", flags=TestGrep._reflags)
1670
self.assertContainsRe(out, "^dir0/file00.txt~7$", flags=TestGrep._reflags)
1671
1671
self.assertEqual(len(out.splitlines()), 1)
1674
1674
out, err = self.run_bzr(['grep', '-l', 'H.LLO', '-r', '-1',
1675
1675
'dir0', 'file1.txt'])
1677
self.assertContainsRe(out, b"^dir0/file00.txt~7$", flags=TestGrep._reflags)
1677
self.assertContainsRe(out, "^dir0/file00.txt~7$", flags=TestGrep._reflags)
1678
1678
self.assertEqual(len(out.splitlines()), 1)
1681
1681
out, err = self.run_bzr(['grep', '-l', 'HELLO',
1682
1682
'-r', '-2', 'file0.txt'])
1684
self.assertContainsRe(out, b"^file0.txt~6$", flags=TestGrep._reflags)
1684
self.assertContainsRe(out, "^file0.txt~6$", flags=TestGrep._reflags)
1685
1685
self.assertEqual(len(out.splitlines()), 1)
1688
1688
out, err = self.run_bzr(['grep', '-l', 'HE.LO',
1689
1689
'-r', '-2', 'file0.txt'])
1691
self.assertContainsRe(out, b"^file0.txt~6$", flags=TestGrep._reflags)
1691
self.assertContainsRe(out, "^file0.txt~6$", flags=TestGrep._reflags)
1692
1692
self.assertEqual(len(out.splitlines()), 1)
1695
1695
out, err = self.run_bzr(['grep', '--no-recursive', '-r', '-1',
1696
1696
'-l', 'HELLO'])
1698
self.assertContainsRe(out, b"^file0.txt~7$", flags=TestGrep._reflags)
1698
self.assertContainsRe(out, "^file0.txt~7$", flags=TestGrep._reflags)
1699
1699
self.assertEqual(len(out.splitlines()), 1)
1702
1702
out, err = self.run_bzr(['grep', '--no-recursive', '-r', '-1',
1703
1703
'-l', '.ELLO'])
1705
self.assertContainsRe(out, b"^file0.txt~7$", flags=TestGrep._reflags)
1705
self.assertContainsRe(out, "^file0.txt~7$", flags=TestGrep._reflags)
1706
1706
self.assertEqual(len(out.splitlines()), 1)
1708
1708
def test_wtree_files_without_matches(self):
1725
1725
out, err = self.run_bzr(['grep', '--files-without-match', 'HELLO'])
1727
self.assertContainsRe(out, b"^file1.txt$", flags=TestGrep._reflags)
1728
self.assertContainsRe(out, b"^dir0/file01.txt$", flags=TestGrep._reflags)
1727
self.assertContainsRe(out, "^file1.txt$", flags=TestGrep._reflags)
1728
self.assertContainsRe(out, "^dir0/file01.txt$", flags=TestGrep._reflags)
1729
1729
self.assertEqual(len(out.splitlines()), 2)
1732
1732
out, err = self.run_bzr(['grep', '--files-without-match', 'HE.LO'])
1734
self.assertContainsRe(out, b"^file1.txt$", flags=TestGrep._reflags)
1735
self.assertContainsRe(out, b"^dir0/file01.txt$", flags=TestGrep._reflags)
1734
self.assertContainsRe(out, "^file1.txt$", flags=TestGrep._reflags)
1735
self.assertContainsRe(out, "^dir0/file01.txt$", flags=TestGrep._reflags)
1736
1736
self.assertEqual(len(out.splitlines()), 2)
1739
1739
out, err = self.run_bzr(['grep', '-L', 'HELLO'])
1741
self.assertContainsRe(out, b"^file1.txt$", flags=TestGrep._reflags)
1742
self.assertContainsRe(out, b"^dir0/file01.txt$", flags=TestGrep._reflags)
1741
self.assertContainsRe(out, "^file1.txt$", flags=TestGrep._reflags)
1742
self.assertContainsRe(out, "^dir0/file01.txt$", flags=TestGrep._reflags)
1743
1743
self.assertEqual(len(out.splitlines()), 2)
1746
1746
out, err = self.run_bzr(['grep', '-L', 'HE.LO'])
1748
self.assertContainsRe(out, b"^file1.txt$", flags=TestGrep._reflags)
1749
self.assertContainsRe(out, b"^dir0/file01.txt$", flags=TestGrep._reflags)
1748
self.assertContainsRe(out, "^file1.txt$", flags=TestGrep._reflags)
1749
self.assertContainsRe(out, "^dir0/file01.txt$", flags=TestGrep._reflags)
1750
1750
self.assertEqual(len(out.splitlines()), 2)
1753
1753
out, err = self.run_bzr(['grep', '-L', 'HELLO', 'dir0', 'file1.txt'])
1755
self.assertContainsRe(out, b"^file1.txt$", flags=TestGrep._reflags)
1756
self.assertContainsRe(out, b"^dir0/file01.txt$", flags=TestGrep._reflags)
1755
self.assertContainsRe(out, "^file1.txt$", flags=TestGrep._reflags)
1756
self.assertContainsRe(out, "^dir0/file01.txt$", flags=TestGrep._reflags)
1757
1757
self.assertEqual(len(out.splitlines()), 2)
1760
1760
out, err = self.run_bzr(['grep', '-L', '.ELLO', 'dir0', 'file1.txt'])
1762
self.assertContainsRe(out, b"^file1.txt$", flags=TestGrep._reflags)
1763
self.assertContainsRe(out, b"^dir0/file01.txt$", flags=TestGrep._reflags)
1762
self.assertContainsRe(out, "^file1.txt$", flags=TestGrep._reflags)
1763
self.assertContainsRe(out, "^dir0/file01.txt$", flags=TestGrep._reflags)
1764
1764
self.assertEqual(len(out.splitlines()), 2)
1767
1767
out, err = self.run_bzr(['grep', '-L', 'HELLO', 'file1.txt'])
1769
self.assertContainsRe(out, b"^file1.txt$", flags=TestGrep._reflags)
1769
self.assertContainsRe(out, "^file1.txt$", flags=TestGrep._reflags)
1770
1770
self.assertEqual(len(out.splitlines()), 1)
1773
1773
out, err = self.run_bzr(['grep', '-L', '.ELLO', 'file1.txt'])
1775
self.assertContainsRe(out, b"^file1.txt$", flags=TestGrep._reflags)
1775
self.assertContainsRe(out, "^file1.txt$", flags=TestGrep._reflags)
1776
1776
self.assertEqual(len(out.splitlines()), 1)
1779
1779
out, err = self.run_bzr(['grep', '--no-recursive', '-L', 'HELLO'])
1781
self.assertContainsRe(out, b"^file1.txt$", flags=TestGrep._reflags)
1781
self.assertContainsRe(out, "^file1.txt$", flags=TestGrep._reflags)
1782
1782
self.assertEqual(len(out.splitlines()), 1)
1785
1785
out, err = self.run_bzr(['grep', '--no-recursive', '-L', '.ELLO'])
1787
self.assertContainsRe(out, b"^file1.txt$", flags=TestGrep._reflags)
1787
self.assertContainsRe(out, "^file1.txt$", flags=TestGrep._reflags)
1788
1788
self.assertEqual(len(out.splitlines()), 1)
1790
1790
def test_ver_files_without_matches(self):
1807
1807
out, err = self.run_bzr(['grep', '-r', '-1', '--files-without-match',
1810
self.assertContainsRe(out, b"^file1.txt~7$", flags=TestGrep._reflags)
1811
self.assertContainsRe(out, b"^dir0/file01.txt~7$", flags=TestGrep._reflags)
1810
self.assertContainsRe(out, "^file1.txt~7$", flags=TestGrep._reflags)
1811
self.assertContainsRe(out, "^dir0/file01.txt~7$", flags=TestGrep._reflags)
1812
1812
self.assertEqual(len(out.splitlines()), 2)
1815
1815
out, err = self.run_bzr(['grep', '-r', '-1', '--files-without-match',
1818
self.assertContainsRe(out, b"^file1.txt~7$", flags=TestGrep._reflags)
1819
self.assertContainsRe(out, b"^dir0/file01.txt~7$", flags=TestGrep._reflags)
1818
self.assertContainsRe(out, "^file1.txt~7$", flags=TestGrep._reflags)
1819
self.assertContainsRe(out, "^dir0/file01.txt~7$", flags=TestGrep._reflags)
1820
1820
self.assertEqual(len(out.splitlines()), 2)
1823
1823
out, err = self.run_bzr(['grep', '-r', '6..7', '--files-without-match',
1826
self.assertContainsRe(out, b"^file1.txt~6$", flags=TestGrep._reflags)
1827
self.assertContainsRe(out, b"^dir0/file00.txt~6$", flags=TestGrep._reflags)
1828
self.assertContainsRe(out, b"^dir0/file01.txt~6$", flags=TestGrep._reflags)
1829
self.assertContainsRe(out, b"^file1.txt~7$", flags=TestGrep._reflags)
1830
self.assertContainsRe(out, b"^dir0/file01.txt~7$", flags=TestGrep._reflags)
1826
self.assertContainsRe(out, "^file1.txt~6$", flags=TestGrep._reflags)
1827
self.assertContainsRe(out, "^dir0/file00.txt~6$", flags=TestGrep._reflags)
1828
self.assertContainsRe(out, "^dir0/file01.txt~6$", flags=TestGrep._reflags)
1829
self.assertContainsRe(out, "^file1.txt~7$", flags=TestGrep._reflags)
1830
self.assertContainsRe(out, "^dir0/file01.txt~7$", flags=TestGrep._reflags)
1831
1831
self.assertEqual(len(out.splitlines()), 5)
1834
1834
out, err = self.run_bzr(['grep', '-r', '6..7', '--files-without-match',
1837
self.assertContainsRe(out, b"^file1.txt~6$", flags=TestGrep._reflags)
1838
self.assertContainsRe(out, b"^dir0/file00.txt~6$", flags=TestGrep._reflags)
1839
self.assertContainsRe(out, b"^dir0/file01.txt~6$", flags=TestGrep._reflags)
1840
self.assertContainsRe(out, b"^file1.txt~7$", flags=TestGrep._reflags)
1841
self.assertContainsRe(out, b"^dir0/file01.txt~7$", flags=TestGrep._reflags)
1837
self.assertContainsRe(out, "^file1.txt~6$", flags=TestGrep._reflags)
1838
self.assertContainsRe(out, "^dir0/file00.txt~6$", flags=TestGrep._reflags)
1839
self.assertContainsRe(out, "^dir0/file01.txt~6$", flags=TestGrep._reflags)
1840
self.assertContainsRe(out, "^file1.txt~7$", flags=TestGrep._reflags)
1841
self.assertContainsRe(out, "^dir0/file01.txt~7$", flags=TestGrep._reflags)
1842
1842
self.assertEqual(len(out.splitlines()), 5)
1845
1845
out, err = self.run_bzr(['grep', '-r', '-1', '-L', 'HELLO'])
1847
self.assertContainsRe(out, b"^file1.txt~7$", flags=TestGrep._reflags)
1848
self.assertContainsRe(out, b"^dir0/file01.txt~7$", flags=TestGrep._reflags)
1847
self.assertContainsRe(out, "^file1.txt~7$", flags=TestGrep._reflags)
1848
self.assertContainsRe(out, "^dir0/file01.txt~7$", flags=TestGrep._reflags)
1849
1849
self.assertEqual(len(out.splitlines()), 2)
1852
1852
out, err = self.run_bzr(['grep', '-r', '-1', '-L', 'H.LLO'])
1854
self.assertContainsRe(out, b"^file1.txt~7$", flags=TestGrep._reflags)
1855
self.assertContainsRe(out, b"^dir0/file01.txt~7$", flags=TestGrep._reflags)
1854
self.assertContainsRe(out, "^file1.txt~7$", flags=TestGrep._reflags)
1855
self.assertContainsRe(out, "^dir0/file01.txt~7$", flags=TestGrep._reflags)
1856
1856
self.assertEqual(len(out.splitlines()), 2)
1859
1859
out, err = self.run_bzr(['grep', '-L', 'HELLO', '-r', '-1',
1860
1860
'dir0', 'file1.txt'])
1862
self.assertContainsRe(out, b"^file1.txt~7$", flags=TestGrep._reflags)
1863
self.assertContainsRe(out, b"^dir0/file01.txt~7$", flags=TestGrep._reflags)
1862
self.assertContainsRe(out, "^file1.txt~7$", flags=TestGrep._reflags)
1863
self.assertContainsRe(out, "^dir0/file01.txt~7$", flags=TestGrep._reflags)
1864
1864
self.assertEqual(len(out.splitlines()), 2)
1867
1867
out, err = self.run_bzr(['grep', '-L', 'H.LLO', '-r', '-1',
1868
1868
'dir0', 'file1.txt'])
1870
self.assertContainsRe(out, b"^file1.txt~7$", flags=TestGrep._reflags)
1871
self.assertContainsRe(out, b"^dir0/file01.txt~7$", flags=TestGrep._reflags)
1870
self.assertContainsRe(out, "^file1.txt~7$", flags=TestGrep._reflags)
1871
self.assertContainsRe(out, "^dir0/file01.txt~7$", flags=TestGrep._reflags)
1872
1872
self.assertEqual(len(out.splitlines()), 2)
1875
1875
out, err = self.run_bzr(['grep', '-L', 'HELLO',
1876
1876
'-r', '-2', 'file1.txt'])
1878
self.assertContainsRe(out, b"^file1.txt~6$", flags=TestGrep._reflags)
1878
self.assertContainsRe(out, "^file1.txt~6$", flags=TestGrep._reflags)
1879
1879
self.assertEqual(len(out.splitlines()), 1)
1882
1882
out, err = self.run_bzr(['grep', '-L', 'HE.LO',
1883
1883
'-r', '-2', 'file1.txt'])
1885
self.assertContainsRe(out, b"^file1.txt~6$", flags=TestGrep._reflags)
1885
self.assertContainsRe(out, "^file1.txt~6$", flags=TestGrep._reflags)
1886
1886
self.assertEqual(len(out.splitlines()), 1)
1889
1889
out, err = self.run_bzr(['grep', '--no-recursive', '-r', '-1',
1890
1890
'-L', 'HELLO'])
1892
self.assertContainsRe(out, b"^file1.txt~7$", flags=TestGrep._reflags)
1892
self.assertContainsRe(out, "^file1.txt~7$", flags=TestGrep._reflags)
1893
1893
self.assertEqual(len(out.splitlines()), 1)
1896
1896
out, err = self.run_bzr(['grep', '--no-recursive', '-r', '-1',
1897
1897
'-L', '.ELLO'])
1899
self.assertContainsRe(out, b"^file1.txt~7$", flags=TestGrep._reflags)
1899
self.assertContainsRe(out, "^file1.txt~7$", flags=TestGrep._reflags)
1900
1900
self.assertEqual(len(out.splitlines()), 1)
1902
1902
def test_no_tree(self):