2012-12-19 40 views
11

Trong nhóm của chúng tôi, chúng tôi thực hành xem xét mã cho từng cam kết. Ý tôi là số địa phương xem xét mã, khi người đánh giá nằm gần bạn. Với Subversion (chúng tôi sử dụng TortoiseSVN), chúng tôi sử dụng để sắp xếp thay đổi trong bộ như thế này:Công cụ để xem xét mã trong kho Mercurial

enter image description here

Bây giờ chúng ta sử dụng Mercurial (thông qua TortoiseHG). TortoiseHG không hỗ trợ các thay đổi nhóm trong thư mục làm việc.

Cam kết cục bộ giúp một chút nhưng vẫn gặp sự cố khi xem xét một loạt các cam kết cục bộ. Không có cách nào để "đánh dấu" (ví dụ, với hộp kiểm) các tệp đã được xem xét.

Có công cụ nào giải quyết được sự cố này không? Ngoài ra, nó sẽ rất thú vị để đọc về kinh nghiệm của bạn với việc xem xét mã trong Mercurial.

Trả lời

4

Chúng tôi sử dụng công cụ Atlassian Crucible Đây là một trong những công cụ PR tốt nhất và được trộn với tất cả các công cụ Atlassian khác dễ dàng lựa chọn tốt nhất. Điều này có thể rẻ đối với một nhóm nhỏ, vẫn khá rẻ đối với doanh nghiệp lớn hơn.

Tính năng này hoạt động sau khi bạn đẩy các thay đổi của mình vào kho lưu trữ được theo dõi. Chúng tôi sử dụng hiệu quả tích hợp liên tục và xây dựng để vô hiệu hóa mã đẩy mỗi đêm để chúng tôi có thể thực hiện các đánh giá ngang hàng và sáp nhập sớm và nhanh chóng.

Mặc dù chúng tôi sẽ ghép nối chương trình và xem xét các thay đổi trên vai hoặc bắt mọi người, hoặc sử dụng IDE (IntelliJ IDEA) hoặc DiffMerge để xem lại các thay đổi ngay tại máy tính. Đây không thực sự là một công cụ PR, nó là một công cụ khác biệt/hợp nhất mà chúng ta cũng sử dụng để hợp nhất nhưng hỗn hợp của DiffMerge và Crucible tạo điều kiện cho các quy trình nhanh của chúng ta khá tốt.

Tôi hy vọng rằng sẽ giúp một số.

+0

Có vẻ như các công cụ như Crucible hoặc ReviewBoard quá mạnh mẽ đối với chúng tôi. Dù sao, cảm ơn cho câu trả lời! – Kirill

-2

Có nhiều công cụ đánh giá mã sẽ xử lý việc này - một số miễn phí; một số trả tiền. Thực hiện tìm kiếm "đánh giá mã ngang hàng" và bạn sẽ thấy tất cả. Tôi sẽ lựa chọn thứ gì đó cũng cho phép bạn báo cáo về quy trình làm việc, lỗi tìm thấy, thời gian xem xét, v.v. Thông tin này có thể cực kỳ mạnh mẽ trong việc cải thiện hiệu suất của nhà phát triển và nhóm phát triển.

+6

Một số liên kết có thể hữu ích. Có bất kỳ kinh nghiệm nào mà bạn có kinh nghiệm mà bạn có thể giới thiệu không? – davidmc24

5

tôi thấy ít nhất hai cách để thực hiện rà soát mã trong Mercurial | TortoiseHG:

  • mà không cần công cụ của bên thứ 3
  • sử dụng sản phẩm bổ sung

nội CodeReview

Chỉ Mercurial và chi nhánh được đặt tên của nó được sử dụng trong trường hợp này. Quy trình và thỏa thuận sơ bộ * nhánh mặc định là nhánh chỉ hợp nhất. Tất cả sự phát triển xảy ra riêng biệt (cá nhân-? Tính năng-?) chi nhánh; * Chỉ có QA đáng tin cậy mới có quyền hợp nhất thành mặc định;

cách thức hoạt động

  1. Khi DEV muốn hiển thị một số changesets từ chi nhánh tính năng để bảo đảm chất lượng, ông đẩy chi nhánh trong câu hỏi (hg push -b) để bảo đảm chất lượng (hoặc QA kéo chi nhánh)
  2. Mỗi changeset xét (hoặc toàn bộ chi nhánh sau khi xem xét tất cả các gói) sáp nhập vào mặc định (hoặc bất kỳ khác "đường chính" chi nhánh) và mặc định đẩy lên "kho có thẩm quyền", từ đó "chấp nhận thay đổi" có thể được kéo bởi tất cả các nhà phát triển khác

CodeReview với các công cụ bên ngoài

ReviewBoard

TortoiseHG từ 2.0 có ReviewBoard đối thoại, tích hợp vào Workbench UI. Bạn có thể tải về, cài đặt, cấu hình ReviewBoard (hãy cẩn thận - Django) hoặc đăng nhập vào RBCommons (lưu trữ ReviewBoard) và sau đó làm theo small HowTo này để có được TortoiseHG và ReviewBoard hội nhập

Assembla, BitBucket

Với các yêu cầu kéo và chia đôi, bạn cũng có thể có CodeReview (ở một mức độ nào đó)

5

Nếu bạn phát triển bằng Mercurial + Visual Studio tôi có thể giới thiệu Review Assistant.

Chúng tôi sử dụng nó để xem xét mã trong công ty của chúng tôi. Chúng tôi chủ yếu xem xét mã sau cam kết.

Ngoài ra, bạn có thể thiết lập tích hợp với TortoiseHG.

0

Cần một phương pháp cho nhà phát triển trong các nhóm địa phương để có thể đóng gói các thay đổi của họ và gửi cho họ xem xét. Đây là mở:

Dev A: hg diff > uncommited.patch

Dev B: hg patch --no-commit uncommited.patch

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