SVN - Thiết lập Môi trường

Cài đặt SVN

Subversion là một công cụ kiểm soát phiên bản nguồn mở phổ biến. Nó là mã nguồn mở và có sẵn miễn phí qua internet. Theo mặc định, nó đi kèm với hầu hết các bản phân phối GNU / Linux, vì vậy nó có thể đã được cài đặt trên hệ thống của bạn. Để kiểm tra xem nó đã được cài đặt hay chưa, hãy sử dụng lệnh sau.

[jerry@CentOS ~]$ svn --version

Nếu máy khách Subversion không được cài đặt, thì lệnh sẽ báo lỗi, nếu không, nó sẽ hiển thị phiên bản của phần mềm đã cài đặt.

[jerry@CentOS ~]$ svn --version
-bash: svn: command not found

Nếu bạn đang sử dụng GNU / Linux dựa trên RPM, thì hãy sử dụng yumlệnh để cài đặt. Sau khi cài đặt thành công, hãy thực thisvn --version chỉ huy.

[jerry@CentOS ~]$ su -
Password: 
[root@CentOS ~]# yum install subversion

[jerry@CentOS ~]$ svn --version
svn, version 1.6.11 (r934486)
compiled Jun 23 2012, 00:44:03

Và nếu bạn đang sử dụng GNU / Linux dựa trên Debian, thì hãy sử dụng apt lệnh để cài đặt.

[jerry@Ubuntu]$ sudo apt-get update
[sudo] password for jerry:

[jerry@Ubuntu]$ sudo apt-get install subversion

[jerry@Ubuntu]$ svn --version
svn, version 1.7.5 (r1336830)
compiled Jun 21 2013, 22:11:49

Thiết lập Apache

Chúng tôi đã thấy cách cài đặt ứng dụng khách Subversion trên GNU / Linux. Hãy để chúng tôi xem cách tạo một kho lưu trữ mới và cho phép người dùng truy cập.

Trên máy chủ, chúng tôi phải cài đặt Apache httpd mô-đun và svnadmin dụng cụ.

[jerry@CentOS ~]$ su -
Password: 
[root@CentOS ~]# yum install mod_dav_svn subversion

Các mod_dav_svn gói cho phép truy cập vào kho lưu trữ bằng HTTP, thông qua máy chủ Apache httpd và subversion gói cài đặt công cụ svnadmin.

Subversion đọc cấu hình của nó từ /etc/httpd/conf.d/subversion.conftập tin. Sau khi thêm cấu hình,subversion.conf tệp trông như sau:

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

<Location /svn>
   DAV svn
   SVNParentPath /var/www/svn
   AuthType Basic
   AuthName "Authorization Realm"
   AuthUserFile /etc/svn-users
   Require valid-user
</Location>

Hãy để chúng tôi tạo người dùng Subversion và cấp cho họ quyền truy cập vào kho lưu trữ. Lệnh htpasswd được sử dụng để tạo và cập nhật các tệp văn bản thuần túy được sử dụng để lưu trữ tên người dùngmật khẩu để xác thực cơ bản của người dùng HTTP. Tùy chọn '-c' tạo tệp mật khẩu , nếu tệp mật khẩu đã tồn tại, nó sẽ bị ghi đè. Đó là lý do tại sao chỉ sử dụng tùy chọn '-c' trong lần đầu tiên. Tùy chọn '-m' cho phép mã hóa MD5 cho mật khẩu.

Thiết lập người dùng

Hãy để chúng tôi tạo người dùng tom.

[root@CentOS ~]# htpasswd -cm /etc/svn-users tom
New password: 
Re-type new password: 
Adding password for user tom

Hãy để chúng tôi tạo người dùng jerry

[root@CentOS ~]# htpasswd -m /etc/svn-users jerry
New password: 
Re-type new password: 
Adding password for user jerry
[root@CentOS ~]#

Tạo thư mục mẹ Subversion để lưu trữ tất cả công việc (xem /etc/httpd/conf.d/subversion.conf ).

[root@CentOS ~]# mkdir /var/www/svn
[root@CentOS ~]# cd /var/www/svn/

Thiết lập kho lưu trữ

Tạo một kho lưu trữ dự án có tên là project_repo . lệnh svnadmin sẽ tạo một kho lưu trữ mới và một vài thư mục khác bên trong đó để lưu trữ siêu dữ liệu.

[root@CentOS svn]# svnadmin create project_repo

[root@CentOS svn]# ls -l project_repo
total 24
drwxr-xr-x. 2 root root 4096 Aug  4 22:30 conf
drwxr-sr-x. 6 root root 4096 Aug  4 22:30 db
-r--r--r--. 1 root root    2 Aug  4 22:30 format
drwxr-xr-x. 2 root root 4096 Aug  4 22:30 hooks
drwxr-xr-x. 2 root root 4096 Aug  4 22:30 locks
-rw-r--r--. 1 root root  229 Aug  4 22:30 README.txt

Hãy để chúng tôi thay đổi người dùng và quyền sở hữu nhóm của kho lưu trữ.

[root@CentOS svn]# chown -R apache.apache project_repo/

Kiểm tra xem SELinux có được bật hay không bằng cách sử dụng công cụ trạng thái SELinux.

[root@CentOS svn]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          enforcing
Policy version:                 24
Policy from config file:        targeted

Đối với máy chủ của chúng tôi, SELinux được kích hoạt, vì vậy chúng tôi phải thay đổi bối cảnh bảo mật của SELinux.

[root@CentOS svn]# chcon -R -t httpd_sys_content_t /var/www/svn/project_repo/

Để cho phép các cam kết qua HTTP, hãy thực hiện lệnh sau.

[root@CentOS svn]# chcon -R -t httpd_sys_rw_content_t /var/www/svn/project_repo/

Khởi động lại máy chủ Apache và chúng ta đã hoàn tất việc cấu hình máy chủ Apache.

[root@CentOS svn]# service httpd restart
Stopping httpd:                                            [FAILED]
Starting httpd: httpd: apr_sockaddr_info_get() failed for CentOS
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
                                                           [  OK  ]
[root@CentOS svn]# service httpd status
httpd (pid  1372) is running...
[root@CentOS svn]#

Chúng tôi đã cấu hình máy chủ Apache thành công, bây giờ chúng tôi sẽ cấu hình kho lưu trữ. Để chỉ cung cấp quyền truy cập vào kho lưu trữ cho người dùng đích thực và sử dụng tệp ủy quyền mặc định; nối các dòng sau vào tệp project_repo / conf / svnserve.conf .

anon-access = none
authz-db = authz

Thông thường, mọi dự án Subversion đều có trunk, tags,branches các thư mục trực tiếp dưới thư mục gốc của dự án.

Các thân cây là một thư mục nơi mà tất cả sự phát triển chính xảy ra và thường được kiểm tra ra bởi các nhà phát triển để làm việc trên dự án.

Thư mục thẻ được sử dụng để lưu trữ các ảnh chụp nhanh có tên của dự án. Khi tạo bản phát hành sản xuất, nhóm sẽ gắn thẻ mã đi vào bản phát hành.

Thư mục các nhánh được sử dụng khi bạn muốn theo đuổi các dòng phát triển khác nhau.

Hãy để chúng tôi tạo cấu trúc thư mục thân, thẻ và chi nhánh trong kho dự án.

[root@CentOS svn]# mkdir /tmp/svn-template
[root@CentOS svn]# mkdir /tmp/svn-template/trunk
[root@CentOS svn]# mkdir /tmp/svn-template/branches
[root@CentOS svn]# mkdir /tmp/svn-template/tags

Bây giờ nhập các thư mục từ /tmp/svn-template vào kho lưu trữ.

[root@CentOS svn]# svn import -m 'Create trunk, branches, tags directory structure' /tmp/svn-template/ 
Adding         /tmp/svn-template/trunk
Adding         /tmp/svn-template/branches
Adding         /tmp/svn-template/tags
Committed revision 1.
[root@CentOS svn]#

Xong rồi! Chúng tôi đã tạo thành công kho lưu trữ và cho phép truy cập vàoTomJerry. Từ bây giờ, họ có thể thực hiện tất cả các hoạt động được hỗ trợ đối với kho lưu trữ.