2014-04-22 22 views
8

Để cải thiện quy trình phát triển, tổ chức của chúng tôi đã quyết định giới thiệu Gerrit trong quy trình phát triển. Tôi là người chịu trách nhiệm triển khai máy chủ Gerrit. Hướng dẫn sử dụng có sẵn trên internet rất hữu ích trong việc triển khai Gerrit cho quy trình làm việc hiện tại của chúng tôi. Chúng tôi đang sử dụng Jenkins và Sonar với tư cách là người dùng không tương tác để xác minh các bản dựng. Nhưng trong khi giao dịch với kho lưu trữ, một câu hỏi tăng lên. Hầu hết các nguồn mở đang sử dụng plugin nhân bản gerrit để sao chép mã mới nhất vào kho lưu trữ mã công cộng của họ. Các kho lưu trữ công khai này được tiếp xúc bằng GitLab để người dùng có thể sao chép mã. Ở đây chúng tôi không cần một kho lưu trữ công cộng vì mã được duy trì trong nhà.Gerrit - Tích hợp Gitlab

Đây có phải là lựa chọn tốt để trỏ cả GitLab và Gerrit đến một vị trí lưu trữ git chung không?

Bất kỳ trợ giúp nào được đánh giá cao.

+0

Tôi không chắc chắn , nếu tôi hoàn toàn đúng. Nếu bạn phơi bày repo Git bên trong cài đặt Gerrit cũng thông qua Gitlab, nó không phải là vấn đề từ phía Gerrit, ít nhất là miễn là Gitlab là chỉ đọc (không chắc chắn về cách viết vào repo). – StephenKing

+0

Cảm ơn bạn đã trả lời @StephenKing Tôi đã thực hiện một mẫu thử nghiệm bằng cách định cấu hình git repo hiện tại (_which đã được tiếp xúc bằng github_) với gerrit. Và nó hoạt động tốt. Nghi ngờ của tôi là nó là một lựa chọn tốt? – dasrohith

+0

vâng, nó hoạt động với tôi một thời gian trước đây – kikicarbonell

Trả lời

7

Bạn có thể sử dụng gerrit trước gitlab thông qua tính năng sao chép. Tính năng sao chép không thực hiện việc sao chép/lấy git, nó chỉ đẩy các thay đổi (đã được phê duyệt) vào một kho lưu trữ từ xa.

  • bạn phải nhập kho lưu trữ thông qua ví dụ: 'git push origin master' yêu cầu quyền bổ sung (hoặc bạn cần phải là quản trị viên). Đó không phải là vấn đề lớn trừ khi bạn quên xóa các quyền này . Nếu bạn quên xóa các quyền này hoặc là quản trị viên (những người có các quyền này): "git push" mặc định sẽ thực hiện thông qua mà không được xem xét.
  • bạn phải đảm bảo rằng không ai có thể cam kết với cá thể gitlab. Khác bạn có cơ hội cao để chạy vào xung đột hợp nhất (gerrit là không nhận thức được những cam kết mới này). Bạn có thể bảo vệ các chi nhánh trong gitlab - nhưng quản trị viên (và nếu tôi nhớ chính xác cũng là người tạo/chủ sở hữu kho lưu trữ) sẽ luôn có quyền này.
  • Bạn phải cấp quyền sử dụng chính cho người dùng gerrit để cho phép nó đẩy tới kho lưu trữ gitlab.
  • Tất cả các dự án đã được đầu tiên được tạo ra trong gitlab, nếu không họ sẽ không được đồng bộ hóa (trừ khi bạn tìm thấy một cách mà các repo sẽ được tự động tạo ra trong gitlab trên git push đầu tiên)
+0

Bạn có thể vui lòng xây dựng thêm về tính năng sao chép không? Khi tôi đang cố gắng làm như vậy nhưng không thể hiểu được các lệnh được sử dụng để nhân rộng là gì? Cảm ơn bạn – 1218GG