Gerrit - Hướng dẫn nhanh
Gerrit là một công cụ đánh giá mã dựa trên web được tích hợp với Git và được xây dựng trên hệ thống kiểm soát phiên bản Git (giúp các nhà phát triển làm việc cùng nhau và duy trì lịch sử công việc của họ). Nó cho phép hợp nhất các thay đổi đối với kho lưu trữ Git khi bạn hoàn thành việc xem xét mã.
Gerrit được phát triển bởi Shawn Pearce tại Google, được viết bằng Java, Servlet, GWT (Google Web Toolkit). Bản phát hành ổn định của Gerrit là 2.12.2 và được xuất bản vào ngày 11 tháng 3 năm 2016 được cấp phép theo Giấy phép Apache v2 .
Tại sao sử dụng Gerrit?
Sau đây là những lý do nhất định, tại sao bạn nên sử dụng Gerrit.
Bạn có thể dễ dàng tìm thấy lỗi trong mã nguồn bằng cách sử dụng Gerrit.
Bạn có thể làm việc với Gerrit, nếu bạn có ứng dụng khách Git thường xuyên; không cần cài đặt bất kỳ ứng dụng Gerrit nào.
Gerrit có thể được sử dụng làm trung gian giữa các nhà phát triển và kho git.
Đặc điểm của Gerrit
Gerrit là một hệ thống kiểm soát phiên bản Git mã nguồn mở và miễn phí.
Giao diện người dùng của Gerrit được hình thành trên Google Web Toolkit .
Nó là một khuôn khổ nhẹ để xem xét mọi cam kết.
Gerrit hoạt động như một kho lưu trữ, cho phép đẩy mã và tạo đánh giá cho cam kết của bạn.
Ưu điểm của Gerrit
Gerrit cung cấp quyền kiểm soát truy cập cho các kho lưu trữ Git và giao diện người dùng web để xem xét mã.
Bạn có thể đẩy mã mà không cần sử dụng các công cụ dòng lệnh bổ sung.
Gerrit có thể cho phép hoặc từ chối quyền ở cấp kho lưu trữ và cấp chi nhánh.
Gerrit được hỗ trợ bởi Eclipse.
Nhược điểm của Gerrit
Việc xem xét, xác minh và gửi lại mã sẽ làm chậm thời gian đưa ra thị trường.
Gerrit chỉ có thể hoạt động với Git.
Gerrit chậm và không thể thay đổi thứ tự sắp xếp trong đó các thay đổi được liệt kê.
Bạn cần quyền quản trị viên để thêm kho lưu trữ trên Gerrit.
Trước khi có thể sử dụng Gerrit, bạn phải cài đặt Git và thực hiện một số thay đổi cấu hình cơ bản. Sau đây là các bước để cài đặt ứng dụng khách Git trên các nền tảng khác nhau.
Cài đặt Git Client
Linux
Bạn có thể cài đặt Git trên Linux bằng cách sử dụng công cụ quản lý gói phần mềm. Ví dụ: nếu bạn đang sử dụng Fedora, bạn có thể sử dụng như:
sudo yum install git
Nếu bạn đang sử dụng bản phân phối dựa trên Debian, chẳng hạn như Ubuntu, thì hãy sử dụng lệnh sau:
sudo apt-get install git
các cửa sổ
Bạn có thể cài đặt Git trên Windows bằng cách tải xuống từ trang web Git. Chỉ cần truy cập liên kết msysgit.github.io và nhấp vào nút tải xuống.
Mac
Git có thể được cài đặt trên Mac bằng lệnh sau:
brew install git
Một cách khác để cài đặt Git là tải xuống từ trang web Git. Chỉ cần vào liên kết Git install on Mac , sẽ cài đặt Git cho nền tảng Mac.
Khi bạn đã cài đặt Git, bạn cần tùy chỉnh các biến cấu hình để thêm thông tin cá nhân của mình. Bạn có thể lấy và đặt các biến cấu hình bằng cách sử dụng công cụ Git được gọi là git config cùng với tùy chọn -l (tùy chọn này cung cấp cấu hình hiện tại).
git config -l
Khi chạy lệnh trên, bạn sẽ nhận được các biến cấu hình như trong hình sau
Bạn có thể thay đổi thông tin tùy chỉnh bất kỳ lúc nào bằng cách sử dụng lại các lệnh. Trong chương tiếp theo, bạn sẽ học cách cấu hình tên người dùng và Email người dùng bằng cách sử dụng lệnh git config .
Bạn có thể theo dõi từng cam kết bằng cách đặt tên và biến email . Biến tên chỉ định tên, trong khi biến email xác định địa chỉ email được liên kết với các cam kết Git. Bạn có thể đặt chúng bằng các lệnh sau:
git config --global user.email "[email protected]"
git config --global user.name "your_name"
Khi bạn chạy các lệnh trên, bạn sẽ nhận được tên người dùng và địa chỉ email như trong hình sau.
SSH là viết tắt của Secure Shell hoặc đôi khi là giao thức Secure Socket Shell được sử dụng để truy cập các dịch vụ mạng một cách an toàn từ một máy tính từ xa. Bạn có thể đặt các khóa SSH để cung cấp kết nối đáng tin cậy giữa máy tính và Gerrit.
Bạn có thể kiểm tra khóa SSH hiện có trên máy tính cục bộ của mình bằng lệnh sau trong Git Bash:
$ ls ~/.ssh
Sau khi nhấp vào nút enter, bạn sẽ thấy khóa SSH hiện có như trong hình sau:
Nếu bạn không tìm thấy bất kỳ khóa SSH hiện có nào, thì bạn cần tạo khóa SSH mới.
Tạo khóa SSH mới
Bạn có thể tạo khóa SSH mới để xác thực bằng lệnh sau trong Git Bash:
$ ssh-keygen -t rsa -C "[email protected]"
Nếu bạn đã có khóa SSH, thì đừng tạo khóa mới, vì chúng sẽ bị ghi đè. Bạn có thể sử dụng lệnh ssh-keygen , chỉ khi bạn đã cài đặt Git với Git Bash.
Khi bạn chạy lệnh trên, nó sẽ tạo ra 2 tệp trong thư mục ~ / .ssh .
~/.ssh/id_rsa - Đó là khóa cá nhân hoặc khóa nhận dạng.
~/.ssh/id_rsa.pub - Đó là một TV công cộng.
Bạn có thể thêm khóa SSH vào ssh-agent trên các nền tảng khác nhau được thảo luận thêm.
Linux
Sử dụng lệnh sau trên hệ thống Linux để thêm khóa SSH
cat /home/<local-user>/.ssh/id_rsa.pub
các cửa sổ
Mở GIT GUI và đi tới Help → Show SSH Key như thể hiện trong hình ảnh sau đây.
Sau đó, nhấp vào Copy To Clipboard để sao chép khóa vào khay nhớ tạm.
Mac
Trong Mac OS X, bạn có thể sao chép nội dung id_rsa.pub vào khay nhớ tạm bằng lệnh sau.
$ pbcopy < ~/.ssh/id_rsa.pub
Khóa SSH có thể được thêm vào tài khoản Gerrit bằng các bước sau:
Step 1- Đầu tiên hãy tạo một tài khoản tại các dịch vụ của wmflabs.org .
Step 2- Tiếp theo đăng nhập vào giao diện web cho Gerrit .
Step 3 - Sau đó, ở góc trên cùng bên phải, nhấp vào tên người dùng của bạn và chọn tùy chọn Cài đặt.
Ở đây, chúng tôi đã tạo một tài khoản với tên John để sử dụng Gerrit
Step 4 - Nhấp vào tùy chọn "Khóa công khai SSH" trên menu bên trái và dán Khóa công khai SSH vào trường.
Bạn có thể thêm khóa SSH vào Git bằng các lệnh sau:
Step 1 - Mở Git Bash và lấy ssh-agent bằng lệnh sau.
$ eval 'ssh-agent'
Step 2 - Tiếp theo, thêm khóa SSH vào ssh-agent bằng lệnh sau
$ ssh-add ~/.ssh/id_rsa
Step 3 - Bây giờ, chạy ssh bằng lệnh sau, lệnh này khớp với dấu vân tay SSH được sử dụng khi đăng nhập lần đầu tiên.
$ ssh -p 29418 <user_name>@gerrit.wikimedia.org
Trong ảnh chụp màn hình ở trên, bạn có thể thấy rằng xyz123 là tên tài khoản trình bao phiên bản, được sử dụng trong khi tạo tài khoản Gerrit và Abc123 là tên người dùng của tài khoản Gerrit của bạn.
Bạn có thể tải xuống ví dụ bằng Git cùng với mã nguồn của bất kỳ dự án nào được tổ chức tại gerrit.wikimedia.org bằng cách sử dụng lệnh Git Bash sau đây.
$ git clone
ssh://<user_name>@gerrit.wikimedia.org:29418/mediawiki/extensions/examples
Lệnh git clone sao chép một thư mục vào một thư mục mới; nói cách khác nhận được một bản sao của một kho lưu trữ hiện có . Khi bạn chạy lệnh trên, bạn sẽ nhận được một ảnh chụp màn hình tương tự như sau.
Lệnh trên sao chép kho lưu trữ 'ví dụ' và nhận các đối tượng, tệp, v.v. từ kho lưu trữ đó và lưu trữ nó trong chi nhánh cục bộ của bạn.
Bạn có thể làm việc với Gerrit bằng cách cài đặt git-review trên các nền tảng khác nhau như đã thảo luận trong chương này.
các cửa sổ
Trong Windows, bạn có thể cài đặt git-review như được liệt kê trong các bước sau.
Step 1- Đầu tiên cài đặt Python để cài đặt git-review.
Step 2 - Giữ cài đặt Python trong thư mục mặc định (như C: \ Python27) thay vì cài đặt trong bất kỳ thư mục nào khác.
Step 3 - Tiếp theo, đặt các biến môi trường cho thư mục tập lệnh Python bằng cách sử dụng đường dẫn như C:\Python27\;C:\Python27\Scripts\;
git_review_install
Step 4- Với phiên bản 2.7, Python sẽ tự động cài đặt pip. Đối với phiên bản cũ hơn của Python 2.7, bạn có thể cài đặt pip như được mô tả trong liên kết này .
Step 5 - Chạy Git Bash mở và cài đặt git-review bằng lệnh sau.
$ pip install git-review
Linux
Trong Linux, bạn có thể cài đặt git-review như được mô tả trong các bước sau:
Step 1Người dùng nền tảng Linux không có quyền truy cập root trên máy chủ chia sẻ. Do đó, không có quyền truy cập root, bạn có thể cài đặt git-review cục bộ trong thư mục người dùng bằng các lệnh sau:
virtualenv --python=/usr/bin/python2.6 virtualenv
virtualenv/bin/pip install git-review==1.21
Step 2 - Bạn có thể mở rộng đường dẫn đến các tệp nhị phân cục bộ bằng hai cách -
PATH=$PATH:~/virtualenv/bin/
PATH=~/virtualenv/bin/:$PATH
Step 3 - Bây giờ, sử dụng lệnh sau để thiết lập công việc với Gerrit.
git review -s
or
~/virtualenv/bin/git-review -s
Step 4 - Với quyền truy cập root, git-review có thể được cài đặt bằng lệnh sau.
sudo apt-get install git-review
Step 5- Nếu không có apt-get sau khi cài đặt Python, thì hãy sử dụng các lệnh sau.
$ sudo easy_install pip
$ sudo pip install git-review==1.21
Step 6 - Chạy lệnh sau để làm việc với Gerrit.
git review -s
Mac OS X
Trong Mac, bạn có thể cài đặt git-review bằng các bước sau.
Step 1- Cài đặt Homebrew từ liên kết này .
Step 2 - Tiếp theo, cài đặt git-review bằng lệnh sau.
brew install git-review
Gerrit được xây dựng dựa trên hệ thống kiểm soát phiên bản Git, hệ thống này trích xuất mã từ máy chủ khác, đẩy các thay đổi đối với mã, gửi mã để xem xét, v.v. Tên từ xa mặc định của Git là nguồn gốc và chúng tôi yêu cầu git-review sử dụng tên này đặt tên 'origin' bằng cách sử dụng lệnh sau.
$ git config --global gitreview.remote origin
Git-review có thể được sử dụng để gửi các nhánh git tới Gerrit để xem xét. Bạn có thể thiết lập gitreview bằng lệnh sau trong thư mục dự án.
$ git review -s
Git-review có thể được sử dụng như một công cụ dòng lệnh để định cấu hình Git clone, gửi các nhánh tới Gerrit, tìm nạp các tệp hiện có, v.v. Git-review tìm kiếm gerrit có tên từ xa để làm việc với Gerrit theo mặc định.
Nếu git-review tìm thấy điều khiển từ xa Gerrit, thì nó sẽ gửi chi nhánh tới HEAD:refs/for/masterở vị trí từ xa và nếu không có quyền truy cập từ xa Gerrit, thì git-review sẽ tìm kiếm .gitreview tập tin ở gốc của kho lưu trữ cùng với thông tin từ xa của gerrit.
Git-review xử lý nội bộ sau:
Nó sẽ kiểm tra xem liệu kho lưu trữ từ xa có hoạt động hay không để gửi các nhánh.
Nếu không có quyền truy cập từ xa Gerrit, thì nó sẽ yêu cầu tên người dùng và cố gắng truy cập lại vào kho lưu trữ.
Nó sẽ tạo ra một truy cập từ xa gọi là gerrit trỏ đến Gerrit.
Nó sẽ cài đặt hook commit-msg.
Bạn có thể cập nhật nhánh chính bằng lệnh sau. Lệnh git-pull tìm nạp từ một nhánh cục bộ khác hoặc tích hợp với một kho lưu trữ khác.
git pull origin master
Lệnh sẽ kéo các thay đổi từ điều khiển từ xa gốc (URL của điều khiển từ xa để tìm nạp từ), chi nhánh chính và hợp nhất các thay đổi thành chi nhánh đăng xuất cục bộ.
Bản gốc là bản sao được lưu trong bộ nhớ cache của bản gốc được kéo cuối cùng từ bản gốc.
Git pull là sự kết hợp của git fetch (tìm nạp các cam kết mới từ kho lưu trữ từ xa) và git merge (tích hợp các cam kết mới vào nhánh cục bộ).
Git pull hợp nhất nhánh cục bộ với nhánh từ xa theo mặc định.
Bạn có thể tạo một nhánh trên máy cục bộ bằng lệnh sau.
$ git checkout -b name_of_branch origin/master
Lệnh trên tạo một nhánh mới như được hiển thị trong ảnh chụp màn hình sau.
Ở đây, chúng tôi đã sử dụng branch123là chi nhánh địa phương mới. Bạn có thể hiển thị nhánh mới từ 'cái' bằng cách sử dụng lệnh sau.
$ git branch
Lệnh trên tạo ra kết quả như trong ảnh chụp màn hình sau.
Git checkout điều hướng giữa các nhánh, cập nhật các tệp trong thư mục làm việc và thông báo cho Git để ghi lại các cam kết trên nhánh đó.
Khi bạn sửa đổi mã trong hệ thống tệp cục bộ, bạn có thể kiểm tra các thay đổi trong thư mục bằng lệnh sau.
$ git diff
Trong thư mục dự án, chúng tôi sẽ sửa đổi một số thay đổi trong tệp có tên Example/Example.hooks.phpvà chạy lệnh trên. Chúng ta sẽ nhận được kết quả như trong ảnh chụp màn hình sau.
Bạn có thể kiểm tra các thay đổi được thực hiện đối với tệp hoặc thư mục bằng lệnh sau.
$ git status
Lệnh trên cho phép xem những thay đổi nào đã được thực hiện, những thay đổi nào chưa và tệp nào không được Git theo dõi.
Tiếp theo, bạn có thể thêm các thay đổi trong thư mục làm việc và cập nhật tệp trong lần cam kết tiếp theo bằng lệnh sau.
$ git add Example/Example.hooks.php
Sau khi thêm tệp, hãy chạy lại lệnh git status để xem lại các thay đổi được thêm vào vùng tổ chức như thể hiện trong ảnh chụp màn hình sau.
Bạn có thể thấy sự khác biệt giữa chỉ mục và lần cam kết cuối cùng cũng như nội dung nào đã được sắp xếp bằng cách sử dụng lệnh sau.
$ git diff --cached
Bạn có thể đẩy các thay đổi vào thư mục từ xa từ kho lưu trữ cục bộ bằng lệnh sau.
$ git commit
Khi bạn chạy lệnh trên, nó sẽ yêu cầu thêm thông báo cam kết cho các thay đổi của bạn. Những người khác sẽ nhìn thấy thông báo này khi bạn đẩy cam kết vào kho lưu trữ khác.
Thêm thông điệp cam kết và chạy lại lệnh dưới dạng git commit , lệnh này sẽ hiển thị thông báo cam kết như trong ảnh chụp màn hình sau.
Bạn cần xem lại các thay đổi trong Gerrit trước khi hợp nhất chúng vào bản chính. Các thay đổi có thể được đồng bộ hóa đã xảy ra trong bản chính. Sử dụng lệnh sau trong nhánh mà bạn đang làm việc.
$ git pull --rebase origin master
Lệnh trên sẽ lấy các thay đổi hoặc cam kết từ nhánh từ xa và căn cứ lại các cam kết trên đầu trang chính.
Khi bạn thực hiện xong các thay đổi và hoàn nguyên các cam kết, bạn có thể đẩy bộ thay đổi của mình cho Gerrit để xem xét.
Git pull --rebase thường được sử dụng khi các thay đổi không xứng đáng với một nhánh riêng biệt.
Git pull là sự kết hợp của git fetch và git merge; trong đó git pull --rebase là sự kết hợp của git fetch và git rebase.
Đầu tiên, chạy lệnh dưới dạng git pull origin master như được hiển thị trong ảnh chụp màn hình sau.
Bây giờ sử dụng lệnh dưới dạng git rebase master để căn cứ lại các cam kết như được hiển thị trong ảnh chụp màn hình sau.
Bạn có thể gửi các bản vá để xem xét bằng cách sử dụng git-reviewchỉ huy. Tập hợp thay đổi có thể được đẩy sang Gerrit, bằng cách chạygit review -R như được hiển thị trong ảnh chụp màn hình sau.
Các -R tùy chọn thông báo git-review không hoàn thành rebase trước khi gửi các thay đổi git tới Gerrit.
Bạn có thể gửi mã đến nhánh khác thay vì chính, bằng cách sử dụng lệnh sau.
git review name_of_branch
Cũng có thể gửi mã đến một điều khiển từ xa khác, bằng cách sử dụng lệnh sau.
git review -r name_of_remote
Các thay đổi có thể được xem trong bảng điều khiển Gerrit bằng cách nhấp vào liên kết này .
Nhấp vào liên kết tên tác giả đã sửa đổi , và bạn sẽ nhận được ảnh chụp màn hình sau.
Nhấp vào liên kết khuếch tán để xem các tệp đã thay đổi với các chi tiết khác như được hiển thị trong ảnh chụp màn hình sau.
Bạn có thể chỉnh sửa dự án thông qua giao diện web sau khi đăng nhập vào tài khoản Gerrit như trong các bước sau.
Step 1- Truy cập trang tổng quan Gerrit bằng cách nhấp vào liên kết này . Bạn sẽ nhận được ảnh chụp màn hình sau.
Step 2 - Tiếp theo bấm vào mediawiki/extensions/examplesliên kết được chỉ định trong cột Dự án .
Step 3- Nhấp vào liên kết Chung trên thanh công cụ như thể hiện trong ảnh chụp màn hình sau.
Step 4- Khi mở liên kết Chung sẽ hiện ra ảnh chụp màn hình như sau.
Step 5- Nhấp vào nút Create Change và nó sẽ mở ra một cửa sổ bật lên với một số chi tiết như được hiển thị trong ảnh chụp màn hình sau.
Step 6- Nhập thông tin và bấm nút Tạo .
Sau khi tạo thay đổi, nó sẽ hiển thị thông tin như trong ảnh chụp màn hình sau.
Step 7- Nhấp vào Chỉnh sửa và sau đó nhấp vào Thêm . Bây giờ hãy chọn tệp bạn muốn chỉnh sửa. Ở đây chúng tôi đã chọn tệpExample/i18n/en.json.
Khi bạn mở tệp, nó sẽ hiển thị dữ liệu json như được chỉ định trong ảnh chụp màn hình sau.
Step 8- Nhấp vào Lưu và sau đó nhấp vào nút Đóng .
Step 9- Cuối cùng nhấn nút Publish để xuất bản file đã chỉnh sửa
Step 10- Bạn có thể thay đổi thông báo cam kết bằng cách nhấp vào liên kết Thông báo cam kết như được hiển thị trong ảnh chụp màn hình sau.
Step 11- Nhấn phím e trên bàn phím và thêm một số thông tin bổ sung, nếu muốn Nhấn Save rồi nhấn nút Close .
Xem xét mã là một phần quan trọng của quy trình làm việc trong Gerrit. Khái niệm cơ bản là mã phải được xem xét trước khi được hợp nhất.
Quy trình làm việc của mã cho MediaWiki có thể được xem xét trước khi hợp nhất nó và cũng có thể xem xét các phần mở rộng tùy chỉnh giao diện và hoạt động của MediaWiki. Có một trường hợp đặc biệt mà bạn có thể đẩy các cam kết quốc tế hóa và bản địa hóa .
Bạn có thể đẩy tất cả các cam kết đến một nhánh từ xa khi bạn hoàn thành quá trình phát triển. Ai đó sẽ tìm nạp các thay đổi vào cục bộ và hợp nhất các thay đổi đã tìm nạp đó vào bản chính cục bộ bằng cách tạo cam kết hợp nhất. Bạn có thể đẩy những thay đổi này sangrefs/for/master.
Chủ dự án có nghĩa là dự án thuộc về người được đề cập. Chủ dự án là một nhóm ảo mà bạn không thể thêm thành viên hoặc các nhóm khác trong đó. Chủ sở hữu dự án cung cấp quyền truy cập để cho phép các nhóm khác nhau cấp phép dự án.
Bạn có thể xem các quyền truy cập vào dự án của mình bằng các bước sau.
Step 1- Mở bảng điều khiển Gerrit bằng cách nhấp vào liên kết này .
Step 2- Nhấp vào Tùy chọn Dự án → Danh sách . Tìm kiếm dự án trong danh sách dự án của bạn và nhấp vào nó như thể hiện trong ảnh chụp màn hình sau.
Step 3- Khi bạn mở dự án của mình, hãy nhấp vào tùy chọn Access như được hiển thị trong ảnh chụp màn hình sau.
Step 4- Nhấp vào tùy chọn chỉnh sửa . Bạn có thể thay đổi quyền truy cập bằng cách nhấp vào menu thả xuống. Nhấp vào nút Lưu thay đổi như được hiển thị trong ảnh chụp màn hình sau.
Bất kỳ ai cũng có thể xem lại mã và nhận xét về mã trong Gerrit. Hãy xem xét các bước sau:
Step 1 - Đăng nhập vào Gerrit để mở bảng điều khiển Gerrit như đã nêu trong chương trước.
Step 2 - Bây giờ, hãy nhấp vào bất kỳ chủ đề nào có dự án Gerrit, chi nhánh, ngày cập nhật, v.v. như được hiển thị trong ảnh chụp màn hình sau.
Step 3- Tiếp theo, nó sẽ hiển thị một màn hình. Nhấp vào tùy chọn Thông báo cam kết như được hiển thị trong ảnh chụp màn hình sau.
Các trường quan trọng của nhóm thay đổi như Người đánh giá, Thêm người đánh giá, Tắt song song, v.v. So sánh các nhóm bản vá bao gồm chọn danh sách lịch sử phiên bản cũ, mở rộng chi tiết nhóm bản vá mới hơn, v.v. Xem xét và hợp nhất hoặc từ chối mã bao gồm nút thay đổi từ bỏ, nút gửi bản vá, v.v. không có trong phiên bản hiện tại của Gerrit.