2012-03-15 37 views
12

Hãy nói rằng tôi có các phiên bản sau:Trong mercurial làm thế nào tôi có thể tìm thấy changesets có chứa một chuỗi?

rev 1: 
+ Dim Foo as integer 

rev 2: 
+ I like big butts, I cannot lie 

rev 3 
- Dim Foo as integer 

Foo là trong rev 1 & 2, và ra khỏi ba. Tôi có thể đưa ra lệnh nào để trả lại tất cả các thay đổi mà Foo đã được thêm hoặc xóa?

Lý tưởng nhất là tôi muốn để có thể làm điều này từ toroisehg cũng

+0

bản sao có thể có của [Tìm các bộ thay đổi trong thủy ngân bằng cách gọt miếng vá] (http://stackoverflow.com/questions/5330782/finding-changesets-in-mercurial-by-grepping-the-patch) – krtek

+0

Foo là nội dung của tệp, tên tệp hoặc văn bản trong thư cam kết? –

Trả lời

18

Bạn có thể sử dụng lệnh grep:

hg grep --all Foo 

Để giải quyết mối quan tâm Lazy Badger trong ý kiến.

$ hg init 
$ echo "Dim Foo as integer" > test 
$ hg commit -m "1" 
$ echo "I like big butts, I cannot lie" > test 
$ hg commit -m "2" 
$ echo "Dim Foo as integer" > test 
$ hg commit -m "3" 
$ hg grep --all Foo 

Đầu ra của lệnh grep là:

test:2:+:Dim Foo as integer 
test:1:-:Dim Foo as integer 
test:0:+:Dim Foo as integer 

Điều đó có nghĩa, Foo lần đầu tiên được nhìn thấy trong các thử nghiệm file trên phiên bản 0 (dấu + cho chúng ta biết), sau đó nó biến mất trên phiên bản 1 (các dấu hiệu -) và xuất hiện lại trên bản sửa đổi 2.

Tôi không biết đó có phải là điều bạn muốn hay không, nhưng nó chỉ rõ sửa đổi mà từ tìm kiếm đã được thêm hoặc xóa.

+0

BTW: grep trả về ** tệp chứ không phải thay đổi **. OP yêu cầu "tất cả changesets ..." –

+1

@LazyBadger Bạn có thể thấy rằng grep thực hiện chính xác điều đó, cho chúng tôi biết sửa đổi mẫu tìm kiếm xuất hiện và biến mất – krtek

+0

Tôi muốn changesets, nhưng điều này làm cho tôi ở đó. – WhiskerBiscuit

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