2012-05-03 15 views
23

Tôi đang tìm kiếm tương đương lanh lợi của giải pháp cho câu hỏi này:HG: tìm nơi một dòng bị xóa đã được gỡ bỏ

How do I "git blame" a deleted line?

Nói tóm lại, tôi nhìn vào một lanh lợi cam kết, nơi một dòng đã được bổ sung và trong bản sửa đổi hiện tại, dòng này không còn tồn tại nữa và tôi muốn tìm ra khi nào và tại sao nó bị xóa.

+0

Không hoàn toàn trùng lặp, nhưng hãy xem [câu hỏi này] (http://stackoverflow.com/questions/9725856/in-mercurial-how-can-i-find-changesets-that-contain-a-string). – shambulator

+3

tuyệt vời, điều này đã giúp tôi nhận được từ 'hg show 9876: tip path/to/file | grep --all "pattern" -U20' thành 'hg grep -r 9876: tip" pattern "path/to/file', đó chỉ là những gì tôi cần. Nếu bạn cho rằng đó là một câu trả lời tôi sẽ chấp nhận nó. Ban đầu tôi đã thử nó mà không có '--all', nghĩ rằng nó là một thay thế cho lá cờ -r, nhưng thấy rằng nó chỉ liệt kê phiên bản đầu tiên trừ khi' --all' được chỉ định. – undefined

+0

Cảm ơn bạn đã cung cấp, Brian, nhưng tôi chỉ chỉ cho bạn một câu trả lời hiện có mà giải quyết nó. Viết một câu trả lời ngắn và [cho krtek một upvote] (http://stackoverflow.com/a/9726648/715075) :) – shambulator

Trả lời

24

hg grep sẽ cho phép bạn tìm kiếm nhật ký thay đổi cho mẫu, chẳng hạn như chuỗi đã xóa. Nếu bạn đang tìm kiếm nhiều hơn chỉ là lần xuất hiện đầu tiên, hãy chắc chắn bao gồm cờ --all. Đối với tôi nó trông như thế này:

hg grep --all -r 9876:tip "pattern" path/to/file

Nhờ Anton cho ý kiến ​​hữu ích và krtek cho related answer mình.

+1

'hg grep' đã được đổi tên thành' hg histgrep' trong thời gian chờ đợi. bên cạnh đó câu trả lời vẫn hợp lệ. – stigi

+0

@stigli: Nó có? Tôi không thể tìm thấy bất kỳ tham chiếu đến điều đó, ngay cả trong Mercurial mới nhất (3.8.3+). – jwd

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