http://vietjack.com/svn/index.jsp Copyright © vietjack.com
http://vietjack.com/ Trang chia s các bài hc online min phí Page 1
Mc lc
Gii thiu v SVN ................................................................................................................. 2
Đi vi đc gi ...................................................................................................................... 2
Điu kin tin đ ................................................................................................................... 2
Các khái nim cơ bn v SVN .............................................................................................. 3
H thng qun lý phiên bn (VCS) trong SVN là gì? ......................................................... 3
Thut ng kim soát phiên bn (Version control) trong SVN ............................................. 3
Cài đt môi trưng SVN ....................................................................................................... 4
Cài đt SVN ...................................................................................................................... 4
Cài đt Apache ................................................................................................................. 5
Cài đt tài khon s dng trong SVN ................................................................................ 6
Cài đt repository trong SVN ............................................................................................. 7
Vòng đi trong SVN .............................................................................................................. 9
To repository trong SVN: ................................................................................................. 9
Tiến trình Checkout trong SVN ......................................................................................... 9
Tiến trình Update trong SVN ........................................................................................... 10
Thc hin các thay đi trong SVN .................................................................................. 10
Duyt các thay đi (review) trong SVN ............................................................................ 10
Sa các li trong SVN .................................................................................................... 11
Gii quyết các xung đt trong SVN:................................................................................. 11
Ký thác các thay đi (commit) trong SVN ........................................................................ 11
Tiến trình Checkout trong SVN ........................................................................................... 12
Thc hin các thay đi trong SVN ...................................................................................... 13
Review các thay đi trong SVN ........................................................................................... 15
Tiến trình Update trong SVN ............................................................................................... 17
Sa li trong SVN ............................................................................................................... 22
X lý các xung đt (Conflict) trong SVN .............................................................................. 25
c 1: Kim tra xung đt .............................................................................................. 27
http://vietjack.com/svn/index.jsp Copyright © vietjack.com
http://vietjack.com/ Trang chia s các bài hc online min phí Page 2
c 2: Trì hoãn các xung đt ........................................................................................ 28
c 3: Gii quyết xung đt ........................................................................................... 29
Hot đng Tag trong SVN .................................................................................................. 29
Chia nhánh trong SVN ........................................................................................................ 30
Tài liu tham kho SVN ...................................................................................................... 40
Các đưng link hu ích v SVN ..................................................................................... 40
Gii thiu v SVN
Apache Subversion thường được viết tắt SVN, một phần mềm nguồn mở dùng để quản
lý và kiểm tra các phiên bản mã nguồn khác nhau trong quá trình phát triển phần mềm. Subversion
được tạo bởi CollabNet Inc trong năm 2000, nhưng bây giờ được phát triển bởi một dự án của
Apache Software Foundation, một phần không thể thiếu của cộng đồng các nhà lập trình
và phát triển web.
Mời các bạn vào trang chủ của Viet Jack để tham khảo thêm các loạt bài online miễn phí khác
Loạt bài hướng dẫn của chúng tôi dựa trên nguồn tài liệu của: Tutorialspoint
Đi vi đc gi
Phần hướng dẫn này được thiết kế cho những ai quan tâm về các khái niệm của hệ thống SVN
theo các bước đơn giản và logic. Sau khi kết thúc phần hướng dẫn này, bạn sẽ có sự hiểu biết hơn
về SVN, từ đó có thể nâng cao trình độ của mình.
Điu kin tin đ
Trước khi theo tiến trình của phần hướng dẫn này, bạn nên kiến thức bản về các thuật ngữ
như ngôn ngữ chương trình, mã nguồn, tài liệu…. Bởi vì sử dụng SVN để giải quyết tất cả các mức
độ trong các dự án phần mềm trong tổ chức của bạn, nó sẽ là tốt nếu bạn có kiến thức làm việc cơ
bản về phát triển phần mềm và tiến trình kiểm tra phần mềm.
http://vietjack.com/svn/index.jsp Copyright © vietjack.com
http://vietjack.com/ Trang chia s các bài hc online min phí Page 3
Các khái nim cơ bn v SVN
H thng qun lý phiên bn (VCS) trong SVN là gì?
Version Control System (VCS) một phần mềm giúp các nhà phát triển phần mềm làm việc
với nhau và duy trì một lịch sử đầy đủ công việc của họ.
Dưới đây là mục tiêu của một Version Control System
Cho phép các nhà phát trin phn mm làm việc tương tác với nhau;
Không viết đè lên thay đổi ca mi thành viên to ra;
Duy trì lch s ca mi phiên bn.
Một VCS được chia thành hai kiểu
H thng qun lý phiên bn tp trung (CVCS), và
H thng qun lý phiên bn phân phi/phân cp (DVCS).
Trong phần hướng dẫn này, chúng ta sẽ chỉ tập trung vào hệ thống phiên bản tập trung đặc
biệt Subversion. Subversion sử dụng một máy chủ trung tâm để giữ tất cả các file cung cấp
quyền hợp tác của team.
Thut ng kim soát phiên bn (Version control) trong
SVN
Hãy cùng bàn về một số mục mà chúng ta sử dụng trong phần hướng dẫn này:
Repository (Kho chứa): Một repository trái tim của bất cứ hệ thống quản phiên bản.
khu vực trung tâm để các nhà phát triển giữ tất cả công việc của họ. Kho lưu không
chỉ lưu các file mà còn lưu giữ cả lịch sử làm việc. Kho lưu được truy cập thông qua mạng,
thực hiện vai trò như một máy chủ và công cụ điều khiển phiên bản là một máy khách. Các
máy khách thể kết nối với repository sau đó họ thể giữ/lấy lại những thay đổi họ
thực hiện tới/từ repository. Bằng cách giữ các thay đổi , một khách tạo các thay đổi này tới
người khác và bằng cách lấy lại những thay đổi, một khách thể nhận được các thay đổi
được thực hiện bởi người khác như là một bản sao công việc.
Trunk (Thân): Một thân một thư mục tại đó tất cả các phát triển chính xảy ra thường
được kiểm tra bởi các nhà phát triển làm việc trên dự án.
http://vietjack.com/svn/index.jsp Copyright © vietjack.com
http://vietjack.com/ Trang chia s các bài hc online min phí Page 4
Tags (Thẻ): Thư mục các thẻ được sử dụng để giữ các ảnh chụp nhanh (snapshot) được
đặt tên của dự án. Hoạt động thẻ cho phép đặt các tên để tả dễ ghi nhớ cho các
phiên bản cụ thể trong repository.
Ví dụ, LAST_STABLE_CODE_BEFORE_EMAIL_SUPPORT thì dễ ghi nhớ hơn
7ceef8cb-3799-40dd-a067-c216ec2e5247 của repository UUID và
Revision: 13
Branches (Nhánh): Hoạt động nhánh được sử dụng để tạo một tiến trình khác của sự phát
triển. hữu ích khi bạn muốn tiến trình phát triển của bạn phân theo hai hướng khác
nhau. dụ, khi bạn công bố phiên bản 5.0, bạn thể muốn tạo ra một nhánh để phát
triển các tính năng phiên bản 6.0 mà được giữ riêng rẽ với phiên bản 5.0.
Working copy (Bản sao công việc ): Bản sao công việc hình chụp nhanh (snapshot)
của repository. Kho lưu được chia sẻ bởi cả team, nhưng người ta không thể sửa một
cách trực tiếp. Thay vào đó mỗi nhà lập trình kiểm tra bản sao công việc. Bản sao công
việc khu vực làm việc riêng, tại đó các nhà lập trình thể thực hiện công việc của họ
riêng rẽ một mình, cách biệt với phần còn lại của team.
Các thay đổi commit: Commit tiến trình của việc giữ các thay đổi từ khu vực làm việc
riêng tới máy chủ trung tâm. Sau khi commit, các thay đổi sẵn sàng được sử dụng bởi các
thành viên khác trong team. Các thành viên khác thể lấy lại các thay đổi này bằng cách
cập nhật bản sao công việc. Commit một hoạt động nguyên tử (atomic operation) tức
không thể chia nhỏ hoạt động đó được. Hoặc là nó thành công hoặc là thất bại. Bạn không
bao giờ nhìn thấy một commit hoàn thành giữa chừng.
Cài đt môi trưng SVN
Cài đt SVN
Subversion là một công cụ quản lý phiên bản mã nguồn mở. Nó có sẵn và miễn phí trên mạng. Nó
đi kèm theo các bản mặc định với các bản phân phối của GNU/Linux, vì thế thể đã được cài
đặt trên máy của bạn. Để kiểm tra hay không đã được cài đặt trên máy, bạn sử dụng lệnh
sau:
http://vietjack.com/svn/index.jsp Copyright © vietjack.com
http://vietjack.com/ Trang chia s các bài hc online min phí Page 5
[jerry@CentOS ~]$ svn --version
Nếu bản Subversion client chưa được cài đặt, thì khi đó lệnh sẽ báo lỗi, ngoài ra 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 RPM- trên nền tảng GNU/Linux, thì khi đó bạn sử dụng lệnh yum để cài
đặt. Sau khi cài đặt thành công, chạy lệnh svn--version.
[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
Nếu bạn đang sử dụng Debian- trên nền tảng GNU/Linux, bạn sử dụng lệnh apt để 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
Cài đt Apache
Chúng ta đã thấy cách để cài đặt Subversion client trên GNU/Linux. Bây giờ hãy xem cách để tạo
một repository mới và cho phép người sử dụng truy cập.
Trên server chúng ta phải cài đặt môđun Apache httpd và công cụ svnadmin.
[jerry@CentOS ~]$ su -
Password:
[root@CentOS ~]# yum install mod_dav_svn subversion