2012-01-09 3 views
13

Tôi muốn so sánh 2 bản sửa đổi sử dụng phiên bản 1.3.2 của svn và sao chép các tệp/thư mục đã thay đổi sang một số vị trí trên máy chủ. Việc sao chép không phải là vấn đề, những gì tôi gặp rắc rối là chỉ nhận được các đường dẫn đã thay đổi. Tôi đang sử dụng lệnh này:So sánh 2 bản sửa đổi với svn diff (v 1.3.2) và chỉ nhận đường dẫn thay đổi?

svn diff -r 90:93 URL --username name --password password 

Điều này trả về cho tôi rất nhiều thông tin, làm cách nào tôi chỉ trích xuất đường dẫn đã thay đổi từ thông tin đó? --summarize không có sẵn cho phiên bản 1.3.2. Những gì tôi muốn là một cái gì đó như:

/path/test.txt

Cảm ơn! :)

Trả lời

13

Bạn có đang sử dụng Unix/Linux/Mac hoặc cài đặt Cygwin không?

Bạn có thể chia đầu ra qua grep để tìm tất cả các dòng bắt đầu bằng Index:. (Nếu tôi nhớ đầu ra lệnh diff của Subversion 1.3), điều đó sẽ cho bạn biết tên của các tệp khác nhau. Đó là những gì tôi sử dụng để làm với CVS.

$ svn diff -r 90:93 --username name --password password URL | grep "^Index: " 

Nếu thành công, và bạn muốn loại bỏ Index, bạn có thể sử dụng sed:

$ svn diff -r 90:93 --username name --password password URL \ 
> | sed -n /^Index: /s/^Index: //p' 
+1

Nhiều 'triển khai sed' (tất cả?) Cho phép '/ str/s // rpl /' như viết tắt của '/ str/s/str/rpl /' – tripleee