2008-10-31 31 views

Trả lời

159

Cách khác:

syntax: glob 
bin/** 
+0

điều này dễ hiểu hơn nhiều :) – Xian

+2

Dường như chỉ "bin" (không có dấu ngoặc kép) hoạt động ... – PhiLho

+0

PhiLho, tôi nghĩ rằng cũng sẽ lọc ra các tệp có tên bin –

2

Nevermind, tôi đã nhận nó

syntax: regexp 
bin\\* 

biểu tuân theo cú pháp biểu thức chính quy perl chuẩn.

+2

Thật vậy, và biểu hiện của bạn có nghĩa là "tập tin hoặc thư mục kết thúc với bin và tiếp theo là 0 hoặc nhiều dấu xồ nguợc" ... Vì vậy, nó hoạt động vì dấu chéo ngược được vô hiệu hóa bởi *, nhưng nó áp dụng bất cứ điều gì với "bin" bên trong. Trên Windows, hg thay thế \ by/trước khi khớp. – PhiLho

8

Cả hai của những người cũng sẽ lọc ra một thư mục gọi cabin, mà có thể không được những gì bạn muốn. Nếu bạn đang lọc cấp cao nhất, bạn có thể sử dụng:

^/bin/ 

Đối bin thư mục dưới gốc của bạn, bạn có thể bỏ qua ^. Không cần phải xác định cú pháp, regexp là mặc định.

+3

Điều này sẽ không bỏ qua bất cứ điều gì. Các dấu mũ chỉ nói những thứ trong gốc repo nhưng dấu gạch chéo hàng đầu chỉ bắt dirs không có trong gốc repo. –

0

bỏ qua .class file

syntax: regexp 
?\.class 
+1

Cú pháp regex không chính xác ... – PhiLho

48

tôi đã làm một số thí nghiệm và tôi thấy rằng cú pháp regex trên Windows áp dụng cho con đường bắt đầu với kho hiện tại, với những dấu xồ nguợc chuyển thành dấu gạch chéo.

Vì vậy, nếu kho lưu trữ của bạn nằm trong E: \ Dev chẳng hạn, hg status sẽ áp dụng các mẫu chống lại foo/bar/file1.c và các loại đó. Neo áp dụng cho đường dẫn này.

Vì vậy:

  • Glob áp dụng đối với các yếu tố đường dẫn và bắt nguồn từ các bộ phận yếu tố
  • foo phù hợp với bất kỳ thư mục (hoặc file) có tên foo (không để "foobar" cũng không "barfoo")
  • * foo * khớp với bất kỳ thư mục hoặc tập tin với "foo" trong tên
  • foo/bar * phù hợp với tất cả các file trong thư mục "foo" bắt đầu với "thanh"


  • Regex là trường hợp nhạy cảm, không neo
  • Tất nhiên, dấu chéo ngược regex ký tự đặc biệt như thế nào. (chấm)
  • /khớp \ dấu phân cách đường dẫn trên Windows. \ không khớp với dấu phân cách này ...
  • foo phù hợp với tất cả các file và thư mục với "foo" bên
  • foo/phù hợp với chỉ thư mục kết thúc bằng "foo"
  • /foo/trận thư mục "foo" ở đâu đó trong đường dẫn
  • /foo/bar/phù hợp với thư mục "thanh" trong thư mục "foo" ở đâu đó trong đường dẫn
  • ^foo phù hợp với tập tin hoặc thư mục bắt đầu bằng foo vào thư mục gốc của kho
  • foo $ trận đấu tập tin kết thúc với foo

Tôi hy vọng điều này sẽ giúp ích, tôi đã tìm thấy trang HGIGNORE(5) một chút ngắn gọn.

+0

+1 đó là những gì tôi gọi là câu trả lời hay, hãy cổ vũ – NSGaga

+0

Tôi có mẫu '' [Dd] ebug */'' đang được sử dụng và Điều lạ là nó cũng lọc ** tệp * * như '' debug.txt '' –

0

cú pháp: glob bin/**

Câu trả lời này được trình bày ở trên, tuy nhiên tôi cũng muốn nói thêm rằng * và ** được xử lý khác nhau. ** là đệ quy, * không phải là.

Xem Hg Patterns

Các vấn đề liên quan