2012-12-07 31 views
7

Hai nhà phát triển đang làm việc trên nhánh phát triển trên hai thay đổi hoàn toàn khác nhau (ví dụ: hai tệp khác nhau). Cả hai đều gửi công việc của họ cùng một lúc, kích hoạt hai Jenkins xây dựng. Những bản dựng này được sử dụng tốt nhưng một bài đánh giá mất nhiều thời gian hơn phần còn lại.Trong Gerrit, làm thế nào tôi có thể ngăn chặn một bản vá được thiết lập để được gửi mà không phải là hoàn toàn up-to-date?

Các dev đầu tiên nộp bộ vá của họ và không có cam kết trung vào phát triển quá Gerrit kết hợp nó ngay.

Các dev giây sau nộp bộ vá của họ. Mặc dù có một cam kết trung gian bây giờ, việc hợp nhất chính nó là tầm thường và Gerrit thực hiện hợp nhất.

Bây giờ chúng tôi có hai bản dựng, không phải trong số đó có chứa tác phẩm của người khác.

Tôi muốn chặn lần gửi thứ hai nếu có bất kỳ cam kết trung gian nào, ngay cả khi hợp nhất sẽ hoàn toàn tầm thường, khiến nhà phát triển thay thế rebase và cập nhật nội dung gửi của họ (và kích hoạt xây dựng mới trong Jenkins trong quá trình này).

Tôi phải làm gì trong Gerrit để chặn việc hợp nhất tầm thường nhưng không mong muốn khi đánh giá hoàn tất, bộ bản vá đang được gửi nhưng chi nhánh mục tiêu có hợp nhất trung gian trên đó?

Trả lời

6

Bạn có thể thay đổi tùy chọn dự án trong Gerrit Để chỉ chuyển tiếp nhanh, Điều này sẽ ngăn không cho thay đổi đi vào vì nó không phải là quá trình hợp nhất chuyển tiếp nhanh. Sau đó, buộc nhà phát triển2 phải git kéo --rebase và đẩy lại, bây giờ thay đổi mà developer1 đã thực hiện sẽ là một phần của quá trình xác minh.

+0

Điều này có gây ra bất kỳ tác dụng phụ nào khác không? – MartyMacGyver

+1

Tác dụng phụ là các nhà phát triển cần phải kéo --rebase trước khi đẩy để xem xét –

+1

Không có tác dụng phụ không mong muốn sau đó. Tôi đánh giá cao câu trả lời của bạn và sẽ đánh giá cao một upvote ở đây (Tôi nghĩ câu hỏi này sẽ hữu ích cho người khác). Cảm ơn một lần nữa! – MartyMacGyver

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