2008-09-17 37 views
5

Tôi đang sử dụng CVS trên Windows (với giao diện người dùng WinCVS) và muốn thêm chi tiết của lần kiểm tra cuối cùng vào email từ quá trình xây dựng tự động của chúng tôi, bất cứ khi nào xây dựng không thành công. .Có ai biết các tùy chọn dòng lệnh CVS để biết chi tiết về lần kiểm tra cuối cùng không?

Tôi cần biết các tệp đã thay đổi, người dùng đã thay đổi chúng và nhận xét.

Tôi đã cố gắng giải quyết các tùy chọn dòng lệnh, nhưng dường như không nhận được kết quả chính xác (hoặc nhận được quá nhiều kết quả thay vì chỉ từ một lần đăng ký hoặc chi tiết của một số kiểm tra ngẫu nhiên từ hai tuần trước)

+0

Chúng tôi đã nâng cấp lên SVN kể từ khi tôi đăng câu hỏi này, điều này làm cho vấn đề này trở nên tầm thường (cùng với nhiều lợi ích khác). Tôi cũng khuyên bạn nên nâng cấp! –

Trả lời

1

Wow.

Tôi đã quên mất việc này khó khăn như thế nào. Những gì tôi đã làm trước đây là một quá trình hai giai đoạn.

Thứ nhất, chạy

cvs history -c -a -D "7 days ago" | 
    gawk '{ print "$1 == \"" $6 "\" && $2 == \"" $8 "/" $7 "\" { print \"" $2 " " $3 " " $6 " " $5 " " $8 "/" $7 "\"; next }" }' > /tmp/$$.awk 

để thu thập thông tin về tất cả các checkins trong vòng 7 ngày trước đó và để tạo ra một kịch bản đó sẽ được sử dụng để tạo ra một phần của email đã được gửi.

Tôi sau đó rà soát tệp CVS/Entries trong thư mục chứa tệp bị hỏng để nhận thêm thông tin.

Đập hai người cùng nhau cho phép tôi viết ngón tay thủ phạm và gửi email cho họ thông báo rằng họ đã phá vỡ bản dựng.

Rất tiếc, câu trả lời này không hoàn chỉnh như tôi mong đợi.

+1

Giả sử tùy chọn 'lịch sử' được bật, nếu không "cvs [máy chủ bị hủy bỏ]: Ghi nhật ký lịch sử không được bật trên kho lưu trữ này" –

1

CVS không cung cấp khả năng này. Bạn có thể, tuy nhiên, có được nó bằng cách mua một giấy phép cho FishEye hoặc có thể bằng cách sử dụng CVSTrac (lưu ý: Tôi đã không cố gắng CVS Trac).

Hoặc bạn có thể di chuyển sang SVN, cung cấp khả năng này thông qua các cam kết nguyên tử. Bạn có thể kiểm tra trong một nhóm các tập tin và có nó được tính là một cam kết duy nhất. Trong CVS, mỗi tệp là một cam kết riêng biệt bất kể bạn làm gì.

2

CVS không nhóm các bộ thay đổi như các hệ thống điều khiển phiên bản khác làm; mỗi tệp có số phiên bản và lịch sử độc lập của riêng nó. Đây là một trong những thiếu sót trong CVS nhắc mọi người chuyển sang VC mới hơn.

Điều đó nói rằng, có nhiều cách bạn có thể đạt được mục tiêu của mình. Cách dễ nhất có thể là thêm một móc hậu cam kết để gửi email hoặc đăng nhập vào một tệp. Sau đó, ít nhất, bạn có thể nhóm một tập hợp các cam kết lại với nhau bằng cách xem thời gian email được gửi và ai đã thực hiện thay đổi.

0

"Lịch sử cvs -a -l" có giúp bạn đóng không? Hiển thị cho tất cả người dùng sự kiện cuối cùng cho mỗi dự án ...

+0

Đây là những gì tôi đã thử, nhưng nó trả về ~ 40 kết quả! –

1

Chúng tôi đã thực hiện điều này thông qua một tập lệnh perl đổ các thay đổi và bạn có thể nhận phiên bản miễn phí của perl cho Windows ở liên kết thứ hai.

Cvs2Cl script

Active Perl

0

CVSNT hỗ trợ commit IDs mà bạn có thể sử dụng ở vị trí của thẻ trong nhật ký, thanh toán hoặc cập nhật lệnh. Mỗi bộ tệp được cam kết (cam kết là nguyên tử trong CVSNT) nhận được ID duy nhất của riêng nó. Bạn chỉ cần xác định commitid của lần kiểm tra cuối cùng trong tệp thông qua nhật ký cvs (bạn có thể hạn chế đầu ra qua d "1 giờ trước" hoặc tương tự) và sau đó truy vấn các tệp khác có ID đó.

0

Eclipse có ChangeSets được tích hợp sẵn. Bạn có thể duyệt các thay đổi cuối cùng (ít nhất là các thay đổi đến cũng được cập nhật) bằng cách cam kết. Nó làm điều này bằng cách nhóm các cam kết của tác giả, cam kết tin nhắn và dấu thời gian tương tự.

Điều này cũng hoạt động cho "So sánh với/Chi nhánh hoặc phiên bản khác" nơi bạn có thể chọn Chi nhánh, Thẻ và Ngày. Xem qua các biểu tượng xem đồng bộ hóa cho trình đơn bật lên với "Thay đổi bộ" và tự xem.

Chỉnh sửa: Điều này đòi hỏi phải thay đổi Eclipse ít nhất là người xem, nhưng tùy thuộc vào tần suất bạn cần so sánh và nhóm nó có thể không quá tệ. Nếu bạn không muốn sử dụng nhiều hơn - hãy sử dụng Eclipse chỉ dành cho CVS. Nó sẽ có thể thậm chí có được một khách hàng cvs đồ họa có kích thước phong nha thông qua rcp với tất cả các plugin, nhưng điều này chắc chắn được ra khỏi phạm vi ...

0

Đây có phải là vấn đề được giải quyết không? Tôi sẽ nghĩ bất kỳ công cụ nào trong số CI Matrix hỗ trợ cả thông báo CVS và email đều có thể thực hiện điều này cho bạn.

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