Làm cách nào để tìm ai đã xóa một dòng khỏi tệp trong kho SVN?


11

Tôi làm việc trong một dự án rất lớn (hơn 10000 phiên bản) và đôi khi điều đó xảy ra rằng tôi cần biết ai trong số những người dùng khác đã xóa một số dòng trong một tệp. Có cách nào để làm điều đó? Tôi có thể làm svn blamevới số sửa đổi để kiểm tra xem một dòng có tồn tại trong bản sửa đổi đó hay không, sau đó xem dòng sửa đổi nào đã biến mất và xem ai đã cam kết sửa đổi đó, nhưng quy trình đó là khập khiễng với dự án lớn đó.

Có cách nào thông minh hơn để làm điều đó?

Câu trả lời:


5

Điều này thực hiện những gì bạn cần tự động, mặc dù không nhanh lắm vì nó không sử dụng tìm kiếm nhị phân như đề xuất ở trên:

svn log FILE | egrep '^r[0-9]' | sed -e 's/ .*//' | while read rev; do echo $rev ; svn cat FILE -"$rev" | grep "case STRING" && break  ; done 

5

Tôi sẽ kiểm tra lịch sử của tập tin và thử và nhanh chóng tìm thấy một bản sửa đổi trong đó dòng đó có mặt, và sau đó đổ lỗi giữa CHÍNH và bản sửa đổi đó.

Nếu tệp đã trải qua 100 lần sửa đổi kể từ khi bắt đầu thì nếu bạn tìm kiếm nhị phân thông qua các phiên bản tìm kiếm dòng đó, bạn không cần phải xem hơn 10 phiên bản khác nhau.


Tôi không thấy ý kiến, tất cả có vẻ như là một lời khuyên tốt cho tôi: P
Phoshi

1
Điều này giống như cách tiếp cận của tôi. Tôi muốn một cái gì đó đơn giản / nhanh hơn là tìm kiếm trong 10 phiên bản.
Ivan Petrushev

... đó là 10 phiên bản. Tại thời điểm bạn đăng câu hỏi trên, bạn có thể được thực hiện ngay bây giờ. Trừ khi đây là điều bạn sẽ phải làm lại, trong trường hợp đó sẽ bỏ qua ý kiến ​​của tôi.
ta.speot.is

2
Đúng, nó là tuyệt vời cho một lần chụp, nhưng tôi cần một cái gì đó có thể được sử dụng thường xuyên một cách thường xuyên.
Ivan Petrushev

2

svn log --diffsẽ xác định xóa bằng "-" trong cột số không. Grep cho "r" cũng để bạn có thể xem bản sửa đổi.

% svn log --diff src/fozbo.cpp -r22222:HEAD | grep -e '^r' -e '^-.*xyzzy'
r22222 | jruser | 2016-07-19 20:16:07 -0400 (Tue, 19 Jul 2016) | 1 line
-   else if ( password== "xyzzy") {

Cũng có svn log --searchnhưng điều đó sẽ chỉ tìm kiếm thông điệp cam kết.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.