2013-07-03 46 views
5

Tôi đang tìm cách với TortoiseHg (hoặc đồng bằng hg nếu không có khả năng nào khác tồn tại) để xác định tất cả các thay đổi đối với một tệp cụ thể.Tìm tất cả các thay đổi trong chi nhánh được đặt tên trong đó tệp "X" đã được sửa đổi (bao gồm các lần hợp nhất)

Tôi đã thử sử dụng truy vấn tập hợp sửa đổi: merge() and file("path/to/filename.cs") nhưng điều đó không giúp tôi tìm được những gì tôi đang tìm kiếm. Nó trả về một tập rỗng. Tôi cho rằng điều này là do merge() chỉ trả về các lần hợp nhất và chỉ file() (xuất hiện) trả về các trường hợp không hợp nhất, do đó giao lộ trống.

Tôi cũng đã thử modifies(pattern) nhưng điều đó không xuất hiện đầy đủ khác nhau từ file(pattern) (vẻ với tôi như file() là sự kết hợp của adds()modifies()). contains(pattern) không trả về bất kỳ thành phần nào.

Vì vậy, có thể nhận danh sách các thay đổi trong đó một tệp cụ thể đã được sửa đổi theo bất kỳ cách nào không?

Trả lời

4

Dường như bạn đang chạy vào "làm thế nào thay đổi của tôi nhận được vào ngành này" vấn đề. Khi bạn hợp nhất một changeset thành một nhánh, Mercurial không ghi lại nó như là một sự thay đổi. Thay vào đó, nó làm cho một lưu ý rằng changeset hợp nhất bây giờ là một phần của nhánh đích. Thời gian duy nhất một hợp nhất sẽ cho thấy rằng một tập tin đã được sửa đổi là nếu có một cuộc xung đột hợp nhất, kết quả trong một changeset mới.

Tìm những gì hợp nhất đã mang một thay đổi vào chi nhánh là quá trình gồm hai bước. Trước tiên, bạn phải tìm changeset nơi thay đổi bạn quan tâm xảy ra.

hg log -r "file('<PATTERN>') 

Một khi bạn đã sửa đổi đó, tìm ra hậu duệ changeset đầu tiên trong ngành địa điểm:

hg log -r "first(branch(<BRANCH>) and descendants(<REVISION>))" 
+0

cảm ơn nhiều. Đôi khi bạn không thể nhìn thấy câu trả lời. Mặc dù có bất kỳ số lượng tìm kiếm, tôi không bao giờ tìm thấy một trong số này. Tôi đánh giá cao câu trả lời của bạn, cũng như liên kết đến bản sao. – reidLinden

0

hg log -r "branch(BRANCH) and file('PATTERN')"

Revset cũng có thể được sử dụng và nhập vào Lọc Tooolbar trong THG Workbench

0
hg log grep name_of_your_file 

Liệu các trick cho tôi về việc tìm kiếm tất cả các bộ biến đổi có dẫn đến thay đổi đối với một tệp nhất định. Tất nhiên nếu bạn muốn một cái gì đó đẹp:

thg log name_of_your_file