Làm cách nào để thiết lập đánh giá mã bằng Gitlab?


85

Làm cách nào để thiết lập một đánh giá mã bằng Gitlab? Tôi thấy nó được liệt kê dưới dạng một tính năng trên trang web Gitlab, nhưng dường như tôi không thể tìm thấy hướng dẫn về cách thiết lập một tính năng này (Đối với vấn đề đó, bất kỳ liên kết nào đến hướng dẫn sử dụng Gitlab sẽ được đánh giá cao nhất).

Một số tìm kiếm của tôi đã chỉ ra rằng 'Yêu cầu hợp nhất' là cách để thực hiện ... nhưng tôi thấy chúng hạn chế. Một yêu cầu hợp nhất được ban hành cho thấy tất cả các cam kết giữa một nhánh và nhánh kia. Tôi dường như chỉ có thể xem các khác biệt được tạo cho mỗi cam kết riêng lẻ. Ví dụ: giả sử tôi có một tệp muốn xem lại. Đó là một tệp mới nhưng tôi đã gửi các thay đổi cho nó hơn 10 lần cam kết trên một nhánh nhà phát triển. Nếu tôi đưa ra một yêu cầu hợp nhất cho nhánh nhà phát triển đó từ quá trình tích hợp, tôi thấy 10 cam kết, mỗi cam kết hiển thị những thay đổi gia tăng được thực hiện đối với tệp ... Tôi muốn xem lại toàn bộ. Cai nay moi!

Có phải tôi đang sủa nhầm cây ở đây không? Có công cụ xem xét mã thực tế nào mà tôi có thể sử dụng trong GitLab không, hay các yêu cầu hợp nhất đang diễn ra và nếu có thì tôi đang sử dụng chúng không đúng cách? cách tốt nhất để thiết lập một đánh giá mã thích hợp ở đây là gì?


1
GitLab 6.4 và chế độ xem khác biệt song song của nó có thể giúp xem xét mã: xem câu trả lời của tôi bên dưới
VonC

Với GitLab 13.1 (tháng 6 năm 2020), bạn hiện có Đánh giá yêu cầu hợp nhất. Xem câu trả lời đã chỉnh sửa của tôi bên dưới
VonC

Câu trả lời:


24

Lưu ý: vì GitLab 6.4, có sẵn dạng xem khác biệt song song : xem " yêu cầu kéo 5308 ".

(Tháng 7 năm 2013)Tuy nhiên, vẫn chưa có khả năng bình luận về từng dòng, chỉ ở cấp tệp.
Daniel Sokolowski đề cập trong phần nhận xét rằng Nhận xét trên mỗi dòng hiện được hỗ trợ (09/2014):

Các thành viên trong nhóm của bạn có thể nhận xét về yêu cầu hợp nhất nói chung hoặc trên các dòng cụ thể với nhận xét dòng.

Điều đó vẫn có thể giúp ích cho hoạt động xem xét mã.

https://f.cloud.github.com/assets/4224518/1558702/e0fe633a-4fa3-11e3-9388-3f3e445cb6d4.png


6 năm sau, đối với GitLab 13.1 (tháng 6 năm 2020) :

Yêu cầu hợp nhất Đánh giá được chuyển đến Core

Ban đầu được giới thiệu trong GitLab 11.4 như một tính năng GitLab Premium, Đánh giá yêu cầu hợp nhất cho phép người đánh giá yêu cầu hợp nhất:

  • gửi nhiều bình luận cùng một lúc,
  • giảm nhiễu thông báo cho tác giả yêu cầu hợp nhất và
  • cho phép quy trình xem xét hợp lý và chặt chẽ hơn.

https://about.gitlab.com/images/13_1/batch_comments.png

Kể từ khi được giới thiệu, chúng tôi đã đánh giá lại vị trí của nó trong mô hình định giá dựa trên người mua và là một phần của 13.1, chúng tôi vui mừng thông báo rằng tính năng này hiện đã được chuyển sang GitLab Core.

Xem Tài liệuIssue


Nhận xét trên mỗi dòng hiện đã được hỗ trợ: "Các thành viên trong nhóm của bạn có thể nhận xét về yêu cầu hợp nhất nói chung hoặc trên các dòng cụ thể với nhận xét dòng." ( about.gitlab.com/2014/09/29/gitlab-flow )
Daniel Sokolowski

1
@DanielSokolowski Tuyệt vời! Tôi đã bao gồm bình luận của bạn trong câu trả lời để hiển thị nhiều hơn.
VonC

9

Tôi đã thực hiện đánh giá mã trong Gitlab trong hơn hai tháng mà hầu như không gặp bất cứ khó khăn nào. Tôi đã thiết lập rss2email để gửi thông báo qua email mỗi khi nhà phát triển đưa ra cam kết mới. Sau đó, tôi sử dụng tính năng bình luận của Gitlab để cam kết thực hiện một số nhận xét về mã được đẩy.

Thật không may, Gitlab không cho phép nhận xét trên chính tệp, chỉ trong cam kết (giống như Github, tôi đoán vậy). Bất cứ khi nào tôi thấy mình trong một tình huống mà tôi cần nhận xét điều gì đó mà tôi đã bỏ lỡ trong một lần cam kết trước đó, tôi sử dụng công cụ đổ lỗi để tìm cam kết đã giới thiệu / thay đổi phần mã được nhận xét.

Nó còn lâu mới hoàn hảo, nhưng nó đang hoạt động tốt cho đến nay.


1
Thay vì rss2email, người ta có thể sử dụng thông báo Gitlab để nhận thông báo về các lần đẩy.
vadipp

Tôi có cùng một vấn đề / cách giải quyết. Tôi tin rằng đó sẽ là một bổ sung tính năng tuyệt vời mà bạn có thể thêm nhận xét vào đúng cam kết đổ lỗi cho một dòng cụ thể trong chế độ xem khác biệt hoặc tệp (ý tôi là từ giao diện web duyệt tệp hoặc khác biệt, không chạy đổ lỗi).
AlejandroVD

2

Bạn có thể thấy mã đã gửi trong Yêu cầu hợp nhất cho kho lưu trữ khác hoặc trong kho lưu trữ hiện tại.
ví dụ http://demo.gitlab.com/diaspora/diaspora/commits/master

Sau đó, bạn có thể thêm nhận xét vào các thay đổi tệp đã cam kết (nút Reply) hoặc toàn bộ cam kết

ví dụ http://demo.gitlab.com/diaspora/diaspora/commit/42f47626890218a180870bc3f44ec57625b0779c

Kết quả giao tiếp là xem xét mã . Tuy nhiên, cá nhân tôi khuyên bạn nên thực hiện đánh giá mã trên một PC với giao tiếp trực tiếp bất cứ khi nào có thể và sử dụng các công cụ để ghi lại kết quả hoặc khi cần hình thức hơn.

Đối với bản sửa đổi tệp có nhiều cam kết, ví dụ: http://demo.gitlab.com/diaspora/diaspora/blame/master/README.md, hãy xem nó bằng cách sử dụng blameđể hiểu ai đã làm gì. Tuy nhiên trong quan điểm này không có tùy chọn để giao tiếp và thêm nhận xét. Tôi khuyên bạn chỉ nên thêm các thay đổi dưới dạng nhận xét trong trường hợp này.


7
Tôi nhận được 404 cho liên kết đầu tiên, thứ hai và cuối cùng trong câu trả lời của bạn.
Bryan Oakley

1
Như nó nói trên trang chủ, demo.gitlab.com "LÀ MỘT SANDBOX - nó được đặt lại mỗi giờ" nên tất cả các ví dụ đã bị xóa sạch. Đây không phải là một phương tiện tốt để làm ví dụ.
Uriah Blatherwick

Có, vui lòng xem xét lại việc thiết lập nó với các ví dụ thích hợp. Câu trả lời của bạn có vẻ là một lời khuyên chắc chắn.
dữ liệu

0

Đúng. Yêu cầu hợp nhất là cách thực hiện đánh giá ngang hàng.

Nên có một tab 'khác biệt' sẽ hiển thị các thay đổi của tất cả các cam kết (được đề cập ở đây: http://youtu.be/DyAX8ws5OIc?t=3m2s ).

Video cũng giải thích độc đáo cách nó có thể được sử dụng để đánh giá ngang hàng.


0

Trường hợp sử dụng thông thường của việc xem xét mã là xem xét mã trên một nhánh trước khi hợp nhất thành chính hoặc tương tự. Tôi có một tình huống là tôi đã phát triển một dự án và muốn tất cả mã được mọi người trong nhóm xem xét.

Những gì tôi đã làm là:

Kiểm tra cam kết đầu tiên, thực hiện thay đổi đối với nó, cam kết và đẩy

git co -b FIRST_COMMIT eb67f06c2b3222c0219214b176c41922bc454881
vi README.md
git add README.md
git ci -m "First commit modified so can get full diff against it"
git push --set-upstream origin FIRST-COMMIT

Kiểm tra cam kết cuối cùng, thực hiện thay đổi đối với nó, cam kết và đẩy

git co -b master
vi README.md
git add README.md
git ci -m "Last commit modified so can get full diff against it"
git push --set-upstream origin LAST-COMMIT

Trên GitLab / GitHub, hãy tạo một yêu cầu kéo

  • Nó là một hợp nhất từ ​​LAST_COMMIT thành FIRST_COMMIT

Làm việc cho tôi!


Điều đó không khiến bạn có hai nhánh "rác" trong kho lưu trữ và không có theo dõi các nhận xét trong nhánh chính? Nếu nhận xét yêu cầu thay đổi mã, sau đó bạn có hợp nhất chúng để làm chủ không?
user2084572

Có, sẽ có các nhánh FIRST_COMMIT và LAST_COMMIT dễ xóa ( git br --delete --force origin FIRST_COMMIT LAST_COMMIT; git br --delete --force FIRST_COMMIT LAST_COMMIT). Bạn có thể sử dụng một nhánh khác ngoài tổng thể để chứa các thay đổi đối với nó hoặc tạo các vấn đề riêng theo cách thủ công. Và sau đó tạo một hoặc nhiều nhánh (ví dụ: một nhánh cho mỗi vấn đề) nếu có quá nhiều phản hồi.
HankCa
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.