Sử dụng Hệ thống Kiểm soát Phiên bản Subversion trên Máy chủ
Subversion là một hệ thống theo dõi phiên bản mã nguồn mở. Nó giữ các tệp trong một kho lưu trữ trung tâm và cung cấp quyền kiểm soát phiên bản đối với các thư mục hoặc tệp. Là một nhà phát triển, bạn có thể kéo các tệp dự án từ một kho lưu trữ, thực hiện các thay đổi đối với chúng và đẩy chúng trở lại.
Subversion cũng có một thành phần máy chủ mà bạn có thể sử dụng để lưu trữ các dự án của mình. Nó hoạt động giống như một máy chủ tệp thông thường.
Mục Lục
Cách cài đặt Subversion
Subversion dễ cài đặt. Bạn có thể sử dụng lệnh thích hợp để bắt đầu bản phân phối của mình:
sudo apt install subversion apache2 libapache2-mod-svn
sudo dnf install subversion apache2 mod_dav_svn
Lưu ý rằng lệnh này cũng cài đặt máy chủ web Apache2. Bạn sẽ cần một máy chủ web nếu bạn muốn truy cập vào kho Subversion thông qua HTTP hoặc WebDAV. Bạn cũng có thể sử dụng HTTPS, bạn chỉ cần cài đặt và định cấu hình chứng chỉ kỹ thuật số để làm như vậy.
Khi bạn đã chạy lệnh này, bạn có thể kiểm tra xem bản phụ đã được cài đặt đúng chưa. Bây giờ bạn có thể chạy svn và bạn có thể xem phiên bản hiện tại bằng cách sử dụng –phiên bản quyền mua:
Cấu hình máy chủ với Subversion
Nếu quá trình cài đặt diễn ra suôn sẻ, bây giờ bạn có thể bắt đầu làm việc trên cấu hình kho lưu trữ mà bạn sẽ sử dụng svn. Tất nhiên, bạn sẽ cần tạo một kho lưu trữ mới cho việc này. Đầu tiên, tạo một thư mục trong thư mục gốc để đặt kho lưu trữ của bạn:
sudo mkdir /subversion
Nếu bạn cần truy cập kho lưu trữ của mình bằng cách sử dụng WebDAV qua HTTP, bạn sẽ cần cấp cho Apache quyền sở hữu thư mục của nó. Kể từ khi Apache sử dụng www-data người dùng theo mặc định, cấp quyền cho người dùng này như sau:
sudo chown www-data:www-data /subversion
Bây giờ bạn có thể chuyển sang www-data người dùng và bắt đầu làm việc trên kho lưu trữ của bạn. Lệnh bạn sẽ sử dụng để đăng nhập dưới dạng www-data người dùng là:
sudo su -s /bin/bash www-data
Bạn hiện là người dùng Apache và sau bước này, bạn có thể tạo kho lưu trữ Subversion của mình như sau:
svnadmin create /subversion/myrepo
Bây giờ bạn có một kho lưu trữ Subversion. Để làm cho kho lưu trữ này an toàn hơn một chút và để xác định người dùng của nó, bước tiếp theo là tạo người dùng và đặt mật khẩu cho nó. Để thực hiện việc này, hãy sử dụng lệnh sau:
htpasswd -cmb /subversion/passwd myadmin mypass
Theo lệnh này, tên người dùng của bạn sẽ là myadmin và mật khẩu của bạn sẽ là mật khẩu của tôi. Bạn có thể thay đổi các giá trị này thành bất kỳ giá trị nào phù hợp với hoàn cảnh của bạn.
Kho Subversion của bạn hiện đã sẵn sàng để sử dụng. Ở giai đoạn này, bạn có thể thoát khỏi www-data người dùng bằng cách sử dụng lối ra yêu cầu.
Bây giờ bạn có thể gửi một dự án hoặc tệp mong muốn đến kho của bạn bằng cách sử dụng lệnh bên dưới:
sudo svn import <your-project-address> file:///subversion/myrepo -m "First Commit"
Lệnh này sử dụng nhập khẩu để đẩy mọi thứ trong thư mục dự án của bạn vào kho lưu trữ Subversion của bạn. Trong khi thực hiện việc này, bạn cần thêm thông báo cam kết với -m tham số.
Sử dụng các phương thức truy cập trong lật đổ
Bạn có thể nhận thấy rằng bạn đang sử dụng tập tin:// giao thức để thêm một dự án vào kho lưu trữ của bạn. Đây chỉ là một trong số các giao thức mạng mà bạn có thể sử dụng để truy cập kho lưu trữ svn. Bạn cũng có thể sử dụng giao thức WebDAV qua HTTP hoặc HTTPS hoặc tùy chỉnh của subversion svn giao thức.
Truy cập trực tiếp vào kho lưu trữ
Như bạn đã thấy, bạn có thể sử dụng tập tin:// giao thức để truy cập kho lưu trữ cục bộ. Đây là cách bạn có thể kiểm tra kho lưu trữ cục bộ vào thư mục hiện tại của mình:
svn co file:
Khi bạn kiểm tra repo, svn sẽ hiển thị danh sách các tệp chứa nó:
Truy cập bằng WebDAV
Để tích hợp kho lưu trữ Subversion của bạn với Apache, bạn cần phải định cấu hình một số cài đặt.
Đối với bước đầu tiên, hãy kích hoạt dav, dav_svnvà dav_fs mô-đun bằng cách sử dụng các lệnh sau:
sudo a2enmod dav dav_fs dav_svn
Sau khi kích hoạt các mô-đun được yêu cầu, bây giờ bạn có thể chỉnh sửa /etc/apache2/mods-enabled/dav_svn.conf tập tin. Tạo tệp nếu nó chưa tồn tại và thay đổi nội dung của nó như sau:
<Location /subversion>
DAV svn
SVNPath /subversion/myrepo
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /subversion/passwd
Require valid-user
</Location>
Các AuthUserFile cài đặt tham chiếu đến tệp mà bạn đã tạo trước đó bằng cách sử dụng htpasswd. Thêm nó vào đây sẽ cấp quyền truy cập kho lưu trữ cho tất cả người dùng có tên trong tệp, miễn là họ xác thực bằng mật khẩu hợp lệ.
Khi bạn đã tạo và lưu tệp này, hãy khởi động lại dịch vụ Apache2 bằng lệnh sau:
sudo systemctl restart apache2.service
Bây giờ, khi bạn mở trình duyệt web và truy cập http: // localhost / subversion /, bạn sẽ thấy nội dung của kho lưu trữ của mình. Khi bạn truy cập địa chỉ này, nó sẽ hỏi tên người dùng và mật khẩu của bạn:
Đăng nhập bằng tên người dùng (ví dụ: myadmin) và mật khẩu (mật khẩu của tôi) mà bạn đã thiết lập trước đó. Bạn có thể truy cập kho Subversion của mình bằng cách sử dụng WebDAV sau khi nhập tên người dùng và mật khẩu:
Truy cập bằng SSL và WebDAV
Các https: // giao thức có cấu hình gần như giống với http: // giao thức, chỉ với một số khác biệt quan trọng. Để đưa ra một ví dụ, .conf tệp bạn cần sử dụng trong quá trình cấu hình là khác nhau. Bạn cũng cần cài đặt chứng chỉ kỹ thuật số. Vì như bạn đã biết, đây là logic hoạt động của phương pháp mã hóa SSL.
Bạn có thể tự tạo chứng chỉ số hoặc cài đặt chứng chỉ số do cơ quan có thẩm quyền cấp. Giả sử bạn đã cài đặt chứng chỉ số, việc bạn cần làm rất đơn giản.
Sự khác biệt trong bước này là những thay đổi bạn sẽ thực hiện trong tệp cấu hình. Dưới đây là tệp cấu hình mẫu cho việc sử dụng SSL và WebDAV:
<Location /subversion>
DAV On
SSLRequireSSL
Options None
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /subversion/passwd
Require valid-user
</Location>
Như bạn có thể thấy, sự khác biệt giữa https: // và http: // giao thức không có nhiều thay đổi trong tệp cấu hình. Sau những thay đổi này, bạn sẽ cần khởi động lại apache2 Dịch vụ. Chạy systemctl khởi động lại apache2.service làm như vậy.
Tại sao sử dụng Subversion?
Là một trình theo dõi phiên bản, Subversion ghi nhớ mọi thay đổi được thực hiện đối với tệp và thư mục. Nó cho phép bạn truy cập các phiên bản cũ của phần mềm hoặc tài liệu mà bạn đang làm việc và tìm ra sự khác biệt của chúng. Điều này giúp bạn dễ dàng quản lý các dự án hơn, đặc biệt nếu nhóm phát triển của bạn lớn hoặc phân tán.
Có nhiều hệ thống kiểm soát phiên bản dành cho Linux ngoài Subversion mà bạn có thể muốn xem xét.