Tải bản đầy đủ (.pptx) (38 trang)

Hệ thống quản lý phiên bản dự án phần mềm Subversion

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.53 MB, 38 trang )


Hệ thống quản lý phiên bản dự án
phần mềm Subversion
Danh sách thành viên:
Nguyễn Khắc Trọng
Phạm Duy Sơn
Dương Văn Tuyến
Nội dung đề tài

Giới thiệu về Subversion.

So sánh Subversion với các hệ thống quản lý phiên bản
khác như CVS, GIT, …

Các Subversion Server và Subversion Client.

Giới thiệu về công cụ Subversive trong phần mềm mã
nguồn mở Eclipse.

Ứng dụng Subversion vào quản lý một dự án phần mềm.

Tổng kết, đánh giá, triển vọng và hướng phát triển của
Subversion và công cụ Subsersive.
Giới thiệu Subversion

Subversion (viết tắt SVN) là một hệ thống quản lý
version (version control system - VCS) được giới
thiệu vào năm 2000 bởi công ty CollabNet
(). Đây là hệ thống hỗ trợ
làm việc theo nhóm rất hiệu quả.


Khi một nhóm làm việc trên cùng một project, việc nhiều
người cùng chỉnh sửa nội dung của một file là điều
không thể tránh khỏi. SVN cung cấp các chức năng để có
thể thực hiện việc này một cách đơn giản và an toàn.

Subversion được thiết kế với mục đích thay thế hệ
thống quản lý phiên bản Concurrent Versioning System
(CVS) đã cũ và có nhiều nhược điểm. Subversion có
thể được sử dụng để quản lý bất cứ hệ thống phiên
bản nào.

Subversion là hệ thống quản lý source code tập trung
(Centralized).

Subversion là hệ thống quản lý phiên bản mạnh mẽ,
hữu dụng, và linh hoạt.

Subversion quản lý tập tin và thư mục theo thời gian.


SVN giống như một hệ thống file server mà các client có
thể download và upload file một cách bình thường. Điểm
đặt biệt của SVN là nó lưu lại tất cả những gì thay đổi trên
hệ thống file: file nào đã bị thay đổi lúc nào, thay đổi như
thế nào, và ai đã thay đổi nó. SVN cũng cho phép recover lại
những version cũ một cách chính xác. Các chức năng này
giúp cho việc làm việc nhóm trở nên hiệu quả và an toàn
hơn rất nhiều.

Thông thường, client và server kết nối thông qua mạng

LAN hoặc Internet. Client và server có thể cùng chạy trên
một máy nếu SVN có nhiệm vụ theo vết lịch sử của dự án
do các nhà phát triển phần mềm phát triển trong nội bộ.
Subversion hỗ trợ khá nhiều giao thức để kết nối giữa
client và server.

Ví dụ bạn có thể dùng các giao thức của ứng dụng web
như http:// hoặc https://, hay các giao thức của svn
như svn:// hoặc svn+ssh://, hoặc nếu phần mềm client
và server cài chung trên 1 máy thì có thể dùng file://.

Việc cho phép server hỗ trợ giao thức nào phụ thuộc
vào lúc cấu hình.
Một số khái niệm cơ bản
Subversion dựa trên mô hình quản lí tập trung kiểu
client/server. Mô hình này có 2 khái niệm cơ bản:
Repository và Working Copies.
-
Repository đặt ở server là nơi tập trung quản lý các phiên
bản của dự án phần mềm.

Các thư mục và tập tin của dự án được đặt vào trong kho
lưu trữ trung tâm này. Nó giống như một máy chủ tập tin
thông thường, ngoại trừ việc nó ghi lại được mọi thông
tin thay đổi theo thời gian của hệ thống tập tin và thư
mục.


Repository cho phép khôi phục lại phiên bản cũ của
dữ liệu, hoặc kiểm tra lịch sử của dữ liệu thay đổi như

thế nào.
-
Working Copies đặt ở client là các phiên bản làm việc
copy của các tập tin trong repository.
Repository thì chỉ có một, trong khi working copies có
thể có nhiều (tương ứng với repository đó).
Mô hình Client/Server

Checkout: là khái niệm dùng để chỉ một thành viên
của dự án ở client sẽ lấy một phiên bản copy của các
file thuộc project trên server về máy cục bộ.

Commit: thành viên của dự án đưa các thay đổi trên
các file của project tại máy client lên server.

Update: khi một thành viên muốn cập nhật những
thay đổi của các file thuộc thành viên khác trên
Repository về máy cục bộ của mình.

Merge: nhiều thành viên cùng tiến hành cập nhật trên
một tập tin.
Revision
Để quản lí các phiên bản khác nhau, Subversion đưa ra
khái niệm revision. Nói một cách đơn giản, để hệ thống
có thể quản lý được sự thay đổi của các tập tin, mỗi tập
tin sẽ có dạng Name-Revision.
Ví dụ: cnpm.doc-rev1 và cnpm.doc-rev2 là 2 revision của
tập tin cnpm.doc.
Revision


Cứ mỗi lần commit, toàn bộ Repository sẽ có một con
số revision mới (mỗi con số này là duy nhất và số
revision sau lớn hơn revision trước).

Dù chỉ thay đổi một tập tin sau khi commit, nhưng
toàn bộ hệ thống tập tin của Repository sẽ có cũng
một con số revision.
Minh họa về các revision của một Repository

×