Tôi đang sử dụng SVN cho dự án. với svn log -l 10
, tôi có thể nhận được 10 cam kết cuối cùng cho thư mục này, với id sửa đổi, thông điệp tường trình, v.v. Có lệnh SVN nào cho phép tôi in ra dòng lệnh tất cả các khác biệt cho từng thay đổi đó không? Tôi muốn làm một số grepping/etc. với X khác nhau cuối cùng?In cuối 10/20/... svn thông điệp tường trình khác với
Trả lời
Trong SVN v1.7, có các tùy chọn
--diff : produce diff output
--diff-cmd ARG : use ARG as diff command
mà bạn có thể sử dụng với svn log
Đối với phiên bản cũ (mà có lẽ trường hợp của bạn), bạn sẽ phải làm một số kịch bản để cung cấp bản sửa đổi cho svn diff
và nhận kết quả
Giả sử bạn đang sử dụng Linux, hãy sử dụng tập lệnh sau. lưu nó như svn-diffs.sh. Sau đó, chạy
sh svn-diffs.sh 10
Điều này sẽ thêm nội dung được phân biệt vào tệp theo diff/dir mới được tạo. Bằng cách đó, bạn có thể grep thông qua mà không đáng lo ngại về độ trễ sau này. Điều này làm việc trong các thử nghiệm của tôi. Bạn có thể grep thông qua các tập tin theo diffs/dir riêng biệt để có đầu ra màu.
#!/bin/bash
# Author - Kasun Gajasinghe
HEAD="HEAD"
limit=${1}
[[ -z "$1" ]] && limit=10
revisions=$(svn log -l $limit | grep -r "r[0-9][0-9]*\w" -o | grep -r "[0-9][0-9]*" -o)
mkdir diffs
echo $revisions > diffs/revisions.log
for revision in ${revisions}
do
# svn diff -r $revision:${HEAD} } | grep -ri "SEARCHME" || exit 1
diff=$(svn diff -r $revision:${HEAD})
echo "$diff" > diffs/diffs-$revision-$HEAD.log
echo "=======================" >> diffs/diffs-$revision-$HEAD.log
HEAD=$revision
done
grep -ri "searchme" diffs/
Đối với svn cũ hơn, bạn có thể sử dụng chức năng:
svn-log-diff()
{
for c in `svn log "[email protected]" | grep '^r' | cut -f1 -d ' ' | sed s/r/-c/`; do
svn diff --force $c || break
done
}
Không hiệu quả với tôi - có điều gì sai với 'sed'? – larsr
Đã thử nghiệm trên Ubuntu. Nó hoạt động. – Const
Nó hoạt động. Và tôi đã thêm một lệnh khác bên trong vòng lặp: 'svn log -v $ c', vì vậy tôi có thể thấy các thông báo commit AND diffs ở cùng một vị trí (nhưng nó chậm vì nó phải thực hiện tra cứu thứ hai). –
- 1. Không có thông điệp tường trình trong production.log
- 2. Không thể xuất thông điệp tường trình trong MbUnit + TestDriven
- 3. Làm cách nào để in ra các thông điệp tường trình cho một trình ghi nhật ký cụ thể?
- 4. hợp nhất chi nhánh dev vào đầu chỉ với một thông điệp tường trình
- 5. Cách nào đúng để thoát tập lệnh node.js bằng thông điệp tường trình?
- 6. Ai đó có thể giải thích thông điệp tường trình 'CoreAnimation: timeed out fence'?
- 7. Java - tôi có nên sử dụng hằng số cho thông điệp tường trình không?
- 8. Lưu trữ thông điệp tường trình trong NLog và tự xóa chúng để nhắm mục tiêu
- 9. Thông điệp tường trình trên Android:/dev/pmem: Unmapping buffer base
- 10. Hiển thị thông điệp tường trình trên máy chủ phát triển Java GoogleAppEngine (được sử dụng với GWT)
- 11. BaseLayerAndroid tạo hủy thông báo tường trình
- 12. log4j và weblogic: thông báo tường trình trùng lặp
- 13. Java Garbage Collection Thông báo tường trình
- 14. exit() với thông điệp và khác không thoát tình trạng
- 15. Làm cách nào để chặn hoặc nâng cao thông điệp tường trình khi gọi một tác vụ Ant từ Gradle
- 16. Xác nhận với thông điệp động?
- 17. Làm thế nào để in một thông điệp trong việc xử lý với thử lỗi, bắt
- 18. Làm thế nào để cập nhật một thông điệp được in trong thiết bị đầu cuối mà không cần in lại (Linux)
- 19. Làm cho SVN Commit cũng in số khác
- 20. Tăng thông điệp Asio_flags
- 21. In Unicode từ trình thông dịch Scala
- 22. Ngăn chặn perl từ in thông điệp cảnh báo giống hệt
- 23. Có cách nào thông minh để đưa ra các thông điệp ưu tiên khác nhau không?
- 24. Ngăn chặn bash từ in thông điệp “<PID> Aborted”
- 25. thông điệp cảnh báo Firefox
- 26. git: Hiển thị thông điệp cuối cùng cam kết trong cam kết mẫu
- 27. Subversive: Thay đổi thông điệp cam kết SVN trở về trước?
- 28. Ngăn chặn Windows shutdown với thông điệp tùy chỉnh
- 29. Logging Xây dựng thông điệp với MSBuild 4,0
- 30. iPhone: Facebook FBDialog với thông điệp được điền sẵn
Cool! Chưa được phát hành, và không có trên trình quản lý gói ubuntu của tôi, nhưng tốt để biết rằng nó đang đến. – Rory
@Rory - chúng có sẵn ở đây, nhưng phải được phát hành trước. Tôi đang sử dụng 1.7. http://subversion.apache.org/packages.html#pre-release – manojlds