2010-03-26 31 views
12

Tôi thấy đầu ra của hg status quá tiết cho các thư mục không được theo dõi. Giả sử tôi có kho lưu trữ trống được quản lý bởi cả hai githg. Vì vậy, sẽ có hai thư mục, .git.hg.Ngăn chặn "trạng thái hg" hiển thị mọi thứ trong các thư mục không được theo dõi

Kết quả của git status là:

# Untracked files: 
# (use "git add <file>..." to include in what will be committed) 
# 
# .hg/ 

Kết quả của hg status là:

? .git/HEAD 
? .git/config 
? .git/description 
? .git/hooks/applypatch-msg.sample 
? .git/hooks/commit-msg.sample 
? .git/hooks/post-commit.sample 
? .git/hooks/post-receive.sample 
? .git/hooks/post-update.sample 
? .git/hooks/pre-applypatch.sample 
? .git/hooks/pre-commit.sample 
? .git/hooks/pre-rebase.sample 
? .git/hooks/prepare-commit-msg.sample 
? .git/hooks/update.sample 
? .git/info/exclude 

Có cách nào để giảm sản lượng của nó để cái gì đó như dòng sau?

? .git/ 

Trả lời

11

Bạn chỉ có thể thêm vào .hgignore tập tin của bạn

syntax:glob 
.git 
.gitattributes 
.gitignore 

Để bỏ qua .git hoàn toàn, và các tập tin git liên quan khác.

Nếu mục tiêu là để chỉ giới hạn vào một thư mục, bạn vẫn có thể sử dụng .hgignore nếu bạn thêm một tập tin ẩn trong thư mục đó (sau khi this answer):

syntax:regexp 
^.git/(?!\.hidden).+$ 

Kể từ Mercurial không theo dõi các thư mục ở tất cả, sẽ bỏ qua tất cả các tệp trong phạm vi .git ngoại trừ tệp bị ẩn, chỉ hiển thị một dòng trong trạng thái hiệu quả.

Bạn cũng sẽ có tùy chọn -q/--quiet (đến hg status), ẩn các tệp không được theo dõi (không xác định và bị bỏ qua) trừ khi được yêu cầu rõ ràng với -u/--unknown hoặc -i/--ignored.
Nhưng điều đó có nghĩa là .git thậm chí sẽ không hiển thị trong trường hợp đó.


Nhưng nếu mục tiêu là để hạn chế nói chung đầu ra của tình trạng hg để chỉ các thư mục và không nội dung của họ cho các tập tin untracked, sau đó tôi tin rằng điều này là không thể:

  • git theo dõi nội dung tệp và vì không có nội dung nào được thêm vào, nên nó chỉ đề cập đến thư mục hàng đầu có "không có nội dung nào được thêm"
  • tệp bài hát thủy ngân (không phải thư mục), do đó danh sách toàn diện (trong số tệp).
+0

Đó không phải là quan điểm của tôi. Tôi đã sử dụng thư mục '.git' như một ví dụ. –

+0

@Wei: đúng, tôi đã hoàn thành câu trả lời của tôi để phản ánh câu hỏi thực tế của bạn – VonC

+0

Cảm ơn bạn. Được thăng hạng. –

19

này làm việc cho tôi:

hg status -q 

Lựa chọn -q/--quiet ẩn untracked file (không rõ và bỏ qua) trừ khi rõ ràng yêu cầu với -u/--unknown hoặc -i/--ignored.

0

Tôi hiểu câu hỏi là về cách giảm đầu ra: Tôi có nhu cầu tương tự nhưng không muốn bỏ qua hoặc bỏ qua tệp.Nếu bạn đang sử dụng * NIX, bạn đám mây sử dụng grep, và bạn chỉ muốn giảm bớt đầu ra như bang câu hỏi của bạn, ví dụ như để thoát khỏi những dòng này:

hg status | grep -v "^\?\s\.git" 

Hoặc ví dụ không hiển thị loại bỏ các file

hg status | grep -v "^R" 

Trong Windows PowerShell tương đương sẽ là:

hg status | Select-String -Pattern ("^[^R]") 
Các vấn đề liên quan