2010-09-16 25 views
54

Tôi đang xem xét sử dụng GitHub làm công cụ chính để thực hiện xem xét mã. Với các tính năng như bình luận trực tuyến và so sánh chế độ xem, có vẻ như có rất nhiều tính năng mà các công cụ như Gerrit cung cấp.Quy trình làm việc để xem xét mã dựa trên GitHub

Có ai khác đã sử dụng GitHub cho việc này không? Nếu vậy, quy trình làm việc của bạn là gì? Và những gì có kinh nghiệm của bạn đã làm như vậy, cả tích cực và tiêu cực?

Khi tôi nhận được một số suy nghĩ về điều này và sắp xếp những gì sẽ làm việc tốt nhất cho chúng tôi, tôi sẽ chỉnh sửa câu hỏi của mình để chia sẻ quy trình làm việc được đề xuất của riêng tôi.

EDITED với đề xuất quy trình làm việc

Bước 0. Set up a post-receive hook sử dụng tuyệt vời reviewth.is.

Sau đó:

  1. Commit như thường lệ với commit -a -s, nhưng trong thông điệp cam kết gắn #reviewthis @username.

  2. Nếu bản dựng không thành công, đánh giá sẽ bị bỏ qua cho đến khi bản dựng được khôi phục.

  3. Nhận xét của người đánh giá về cam kết từng dòng hoặc ở cấp tệp.

  4. GitHub tự động thông báo cho người đánh giá nhận xét.

  5. Người đánh giá thông báo cho người nhận xét qua email khi nhận xét hoàn tất với tóm tắt đánh giá.

  6. Trả lời đánh giá cho người nhận xét trong GitHub, cho phép truy cập dự án vào lịch sử đánh giá mã.

Vấn đề lớn nhất của tôi là với Bước 2 và bước 4/5. Gerrit hoạt động độc đáo vì không yêu cầu đánh giá trừ khi xây dựng thành công; Tôi muốn một cách để làm điều này trong GitHub. Các bước 4/5 cũng có khả năng gây phiền nhiễu (nhiều email) và giảm tính chất tự động của quá trình xem xét (yêu cầu một bản tóm tắt được gửi qua email).

Chúng tôi sử dụng Hudson làm máy chủ xây dựng của chúng tôi, nếu điều đó có ích.

Bất kỳ suy nghĩ nào về những vấn đề này cũng sẽ hữu ích.

+0

Đánh giá vừa trở nên tốt hơn (tháng 9 năm 2016): http://stackoverflow.com/a/14480087/6309 – VonC

Trả lời

27

Tôi đã sử dụng nó cho việc này. Luồng công việc tôi đã sử dụng là thực hiện công việc của bạn trên một nhánh chủ đề và gửi yêu cầu kéo trên nhánh đó. (Các) người đánh giá kiểm tra mã và các cam kết, bằng cách sử dụng các nhận xét bằng dòng (và theo cam kết). Các coder có phản hồi đó và thực hiện một rebase phá hoại trên nhánh chủ đề đó, tái đẩy nó (viết lại lịch sử trên repo github của mình), sau đó chu kỳ xem xét lặp lại cho đến khi nó được chấp nhận để hợp nhất.

Chỉnh sửa: Một Githubber đăng trên blog của mình mô tả phương pháp họ sử dụng để phát triển github, và nó khá giống với những gì tôi đề xuất. link

Cập nhật: Tôi hiện đang sử dụng quy trình làm việc này cả trong các dự án mã nguồn mở của tôi và trong công việc chuyên môn của tôi nó vẫn tuyệt vời.

+0

Bạn có bao giờ gặp phải những xung đột khó chịu hoặc các lỗi khác với các nhà phát triển khác đã phân chia repo đó không? Các nhà thiết kế có đồng ý với quy trình làm việc đó không? Tôi đã từng xem xét việc chuyển cửa hàng của mình sang một cái gì đó như thế này – brycemcd

+0

@Bryce: Tôi chưa sử dụng quy trình làm việc này với nhiều lần kéo theo một thời điểm nào đó và chỉ cho một số nội dung nguồn mở, vì vậy không thực sự bất kỳ nhà thiết kế nào tham gia .. Tôi không biết làm thế nào hoặc nếu nó quy mô – Daenyth

+1

Tôi đã sử dụng công việc này trên một dự án với một vài người khác, nơi chúng tôi đã có nhiều chi nhánh tính năng và chúng tôi đã chuyển đổi qua lại giữa các chi nhánh và công cụ sáp nhập. các vấn đề. Git thực hiện công việc tự động kết hợp tuyệt vời. Chúng tôi không phải làm điều đó nhiều bằng tay – klaustopher

2

Tại công việc của mình, chúng tôi thực hiện theo quy trình được mô tả tại "Using pull requests" để xem xét mã và chúng tôi rất hài lòng với quy trình này.

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