Tìm cách xác định số lượng thay đổi xảy ra trong mỗi changeset. Bất kỳ cách nào nhanh chóng để liệt kê có thể kb khác nhau giữa hai phiên bản?Danh sách SIZE của các thay đổi thủy ngân?
Trả lời
hg log --stat
là lệnh bạn đang theo dõi. Xem ví dụ sau:
$ hg log --stat
changeset: 12431:56e146c7beef
user: flast
date: Wed Jun 08 16:12:54 2011 +1000
summary: Fix the frobulate to frob the knob correctly on tuesdays.
path/to/src/frob/interface.py | 29 ++++++++++++++++++++---------
path/to/tests/systest_frob.py | 14 ++++++++++++++
2 files changed, 34 insertions(+), 9 deletions(-)
tôi đã có suy nghĩ tương tự chỉ ngày hôm qua! Tôi đã viết a quick and dirty Python script để xác định tổng thay đổi kích thước tệp cho một khác biệt thống nhất trên stdin hoặc dưới dạng tệp trên dòng lệnh. Để làm điều đó cho một changeset, bạn có thể chỉ:
hg diff -c <cset id> | patchsize.py
Nhanh chóng và bẩn theo nghĩa là nó có thể không tính đến dòng cuối của nền tảng cụ thể, và nó không phân tích so sánh phiên bản đặc biệt khéo léo. Nhưng nó đủ gần cho mục đích của tôi.
'hg log --stat -r cset-id' – Jerub
Đúng, tôi luôn sử dụng nó. Nhưng nó chỉ đi xa như chèn dòng và xóa; Tôi đã tò mò về sự thay đổi tổng số kích thước tập tin được giới thiệu bởi một bản vá. – shambulator
Tôi đã có cùng suy nghĩ như @shambulator hôm qua! Vì vậy, tôi đã thêm khả năng in delta size in bytes như là một phần của --diffstat
đầu ra từ tiện ích somewhat long and clean patch.py của tôi.
wget http://python-patch.googlecode.com/svn-history/r200/trunk/patch.py
hg diff -c tip | python patch.py --diffstat --
codereview/views.py | 28 ++++++++++++++++++++++++++++
index.yaml | 10 ++++++++++
2 files changed, 38 insertions(+), 0 deletions(-), +1267 bytes
UPD: Nhờ @Gili và @mforbes bây giờ có một vé cho Mercurial
https://bz.mercurial-scm.org/show_bug.cgi?id=4245
Có lẽ người ta có thể sử dụng hg bundle
để kiểm tra kích thước? (tôi đã không kiểm tra như thế nào phù hợp đây là về kích thước tổng kho.)
function revsize() {
hg bundle -r $1 --base "p1($1)+p2($1)" /dev/stdout | wc -c
}
Làm thế nào nó hoạt động
này tính kích thước (tính theo byte) sử dụng wc -c
sau khi tạo ra một bó đối với những thay đổi giữa sửa đổi REV = $1
(đối số đầu tiên cho hàm bash) và its parents"p1(REV)+p2(REV)"
(có thể có hai nếu đó là hợp nhất.) Bằng cách sử dụng /dev/stdout
làm tệp, kết quả sẽ được gửi tới tiêu chuẩn. wc -c
mà không cần tạo tệp đĩa.
Lưu ý rằng theo mặc định, các gói được nén bằng bzip2. Không nén, sử dụng "-t none" (xem tài liệu bó hg được liên kết ở trên). – Kim
@Kim Bạn có biết nếu sự khác biệt được lưu trữ nén trên đĩa hay không? Nếu không, '' -t none'' có lẽ là tốt nhất, nhưng tất cả điều này cần một số kiểm tra (hoặc một nguồn có thẩm quyền.) – mforbes
Theo [câu trả lời] cổ đại này (http://stackoverflow.com/a/1270485/3387608) , các tệp ban đầu được nén, nhưng các khác biệt không được nén. Tôi chưa xác minh điều này một cách độc lập hoặc tìm thấy xác nhận gần đây hơn. – Kim
Điều này không hiển thị kb khác biệt. –