Subversion (SVN) là hệ thống kiểm soát phiên bản mã nguồn mở, cung cấp cơ chế quản lý nhánh hiệu quả hơn các giải pháp cũ như CVS. Hướng dẫn này trình bày quy trình cài đặt và cấu hình cơ bản cho môi trường phát triển nhóm.
Kiểm tra và Cài đặt Tiền đề
Xác minh trạng thái cài đặt hiện tại:
yum list installed | grep subversion
# Gỡ cài đặt phiên bản cũ nếu tồn tại
yum erase subversion
Cài đặt các thành phần cần thiết qua kho lưu trữ:
yum install httpd httpd-devel subversion mod_dav_svn
Kiểm tra Module Hệ thống
Xác nhận các module SVN đã tích hợp với Apache:
ls /etc/httpd/modules | grep -E "svn|authz"
Kết quả mong đợi:
mod_authz_svn.so
mod_dav_svn.so
Tạo Kho lưu trữ Mới
Thiết lập thư mục lưu trữ chuẩn:
mkdir -p /srv/svn/projects
svnadmin create /srv/svn/projects
Cấu hình Chi tiết
Chỉnh sửa file xác thực người dùng:
vim /srv/svn/projects/conf/passwd
Nội dung tham khảo:
[users]
devuser = SecurePass@2023
lead = Manager#Role
Thiết lập phân quyền truy cập:
vim /srv/svn/projects/conf/authz
Cấu hình mẫu:
[groups]
development = devuser
management = lead
[projects:/]
@development = rw
@management = r
[projects:/docs]
@management = rw
Chỉnh sửa thông số chính:
vim /srv/svn/projects/conf/svnserve.conf
Thông số quan trọng:
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = Project_Repository
Thiết lập Kết nối
Mở cổng dịch vụ trong tường lửa:
iptables -I INPUT -p tcp --dport 3700 -j ACCEPT
service iptables save
Khởi động dịch vụ với cổng tùy chỉnh:
svnserve -d --listen-port 3700 -r /srv/svn
Kiểm tra trạng thái hoạt động:
netstat -tulpn | grep :3700
ps aux | grep svnserve
Quản lý Dịch vụ
Dừng dịch vụ khi cần thiết:
pkill -f "svnserve -d"
Khởi động lại sau chỉnh sửa cấu hình:
svnserve -d --listen-port 3700 -r /srv/svn
Kiểm tra Truy cập
Kết nối từ máy khách bằng lệnh:
svn checkout svn://your-server-ip:3700/projects
Sử dụng thông tin đăng nhập đã định nghĩa trong file passwd.
Mở rộng Hệ thống
Tạo kho lưu trữ bổ sung:
svnadmin create /srv/svn/additional_repo
# Cấu hình riêng cho repo mới
killall svnserve
svnserve -d --listen-port 3700 -r /srv/svn
Xóa kho lưu trữ không cần thiết:
rm -rf /srv/svn/obsolete_repo