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

Version Control Systems Introduction

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 (691.69 KB, 17 trang )


CVS
Concurrent Version System

Giảng viên: ThS. Phạm Ngọc Nam

Phạm Tấn Đạt
Vũ Văn Hiền

- 51003033
- 51003049

Phạm Văn Tiến

- 51003192

Trần Minh Tân

- 51003161

Lê Hoàng Minh Tâm

- 51003157

CVS
CVS Concurrent
Concurrent Versioning
Versioning System
System



CVS – Concurrent Version System

vs

VCS – Version Control Systems

CVS
CVS Concurrent
Concurrent Versioning
Versioning System
System


Tại sao phải sử dụng VCS?

CVS
CVS Concurrent
Concurrent Versioning
Versioning System
System


Chức năng của VCS

 Ghi lại lịch sử: ghi lại các thông tin cần thiết của từng sửa đổi một, như tác giả, thời gian, các ghi chú giải
trình thao tác thay đổi đó…

 Chức năng đồng bộ: cho phép nhiều người cùng sửa một hoặc nhiều tệp tin cùng lúc vì các thao tác sửa
đổi gây xung đột có thể được phát hiện và giải quyết sau đó.


 Chức năng phục hồi: cho phép khôi phục trạng thái trước khi phát hiện ra có lỗi trong một thao tác sửa
đổi đã làm.

CVS
CVS Concurrent
Concurrent Versioning
Versioning System
System


Một số khái niệm cơ bản
Repository



Là một nơi chung chứa mọi bản chính (master copy) của các tập tin khi chúng được thêm
vào trong cơ sở dữ liệu của một VCS.

 Có thể được lưu trữ riêng cho từng tập tin hoặc chung cho mọi tập tin.
 Trong môi trường phát triển nhóm, thường nằm trên một server riêng.
 Có thể chứa: mã nguồn, sưu liệu, các tài liệu khác (hình ảnh, âm thanh,...)

CVS
CVS Concurrent
Concurrent Versioning
Versioning System
System


Một số khái niệm cơ bản

working folder



Nơi mà chúng ta lấy phiên bản của tập tin (checking-out) và hiệu chỉnh (revision).



Thường được đặt trên máy client cho từng thành viên trong khi làm việc nhóm.



Khi các phiên bản được lấy ra, đây sẽ là nơi mặc định mà một VCS sẽ dùng để chứa các
bản sao phiên bản đó.

CVS
CVS Concurrent
Concurrent Versioning
Versioning System
System


Một số khái niệm cơ bản
lock (khóa)



Khóa nghiêm ngặt (strict locking):






khi một tập tin được lấy ra để hiệu chỉnh, nó sẽ bị đặt thuộc tính là read-only.
thành viên khác có thể đọc nhưng không thể hiệu chỉnh nội dung của nó.

Khóa tự do (optimistic locking)



khi một tập tin được lấy ra để sửa, các thành viên khác cũng có quyền cập nhật dữ liệu trong
tập tin đó



??? Vấn đề cập nhật sẽ được tiến hành như thế nào?

CVS
CVS Concurrent
Concurrent Versioning
Versioning System
System


Một số khái niệm cơ bản
Commit



Là thao tác ra lệnh cho VCS ghi lại những thay đổi (change-sets) mà tác giả vừa thực hiện với (các) file

mà VCS đang theo dõi.



Người sử dụng phải nhập các ghi chú (comment) lí giải cho các commit của mình. (commit message).



Khi cần xem lại các commit trước đó, người ta tìm đến lịch sử commit (commit history).

CVS
CVS Concurrent
Concurrent Versioning
Versioning System
System


Một số khái niệm cơ bản
Patch và diff



Thao tác “diff” sẽ tự động phân tích hai phiên bản khác nhau của một file để chỉ ra phần khác nhau (diff).
Phần khác nhau này có thể được xuất ra thành một file gọi là “patch” chứa thông tin về thay đổi theo quy
chuẩn.



Cần lưu ý là patch với nghĩa là “bản vá” chỉ là một ứng dụng cụ thể của patch. Thao tác applying patch nói
chung là “từ file trước sửa đổi và bản patch tổng hợp thành file sau sửa đổi”.




Các thao tác diff và patch có thể thực hiện trực tiếp thông qua các lệnh cùng tên trên các hệ thống
GNU/Linux hoặc gián tiếp nhờ sự giúp đỡ của các VCS.

CVS
CVS Concurrent
Concurrent Versioning
Versioning System
System


Một số khái niệm cơ bản
conflict



Xung đột (conflict) giữa các commit xảy ra khi có hai (hay nhiều hơn) commit độc lập với nhau xuất
phát từ cùng một commit cũ trước đó.



Xung đột thường xảy ra khi có một trong các commit mới đó chứa thao tác xoá bỏ. Trường hợp các
commit đều là thao tác thêm sẽ dễ dàng được các RCS tự động xử lí (resolve).



Khi xung đột xảy ra, lập trình viên phải cho VCS biết kết quả cuối cùng mà mình mong muốn


CVS
CVS Concurrent
Concurrent Versioning
Versioning System
System


Một số khái niệm cơ bản
project, module, file



Project: một thư mục chứa toàn bộ thông tin của các tập tin của nhóm. Một nhóm có thể thực hiện nhiều
project khác nhau. Các project này có thể chia sẻ các tập tin (shared file). Mỗi VCS thường có một project
gốc cho mọi project.



Tập tin (file) trong dự án có thể thuộc về một hoặc nhiều dự án (shared file).



Module: một dự án con (sub-project) nằm trong một dự án mẹ.

CVS
CVS Concurrent
Concurrent Versioning
Versioning System
System



Một số khái niệm cơ bản
Branch & branching



Khi làm việc nhóm, mọi thành viên đều có một phần mã chung, gọi là nhánh chính
(mainline/trunk/master branch). Và các thành viên đều làm việc với một phần của
nhánh chính.



Khi có yêu cầu tách một phần mã chung đó, ví dụ như để tạo một phiên bản để thử
nghiệm, các thành viên của nhóm phân phối thử nghiệm đó cần mã độc lập với nhánh
chính.

CVS
CVS Concurrent
Concurrent Versioning
Versioning System
System


Một số khái niệm cơ bản
Branch & branching
branch

1.2.1.1

1.2.1.2


1.2.1.3
merge

1.1

1.2

1.3

1.4

1.5

1.6

main trunk

1.2.1.1

1.2.1.2

1.4.1.1

branch

1.2.1.1.1.1

1.2.1.1.1.2


Branching là một cơ chế của hệ thống quản lý phiên bản cho phép tách một phần của dự án
ra riêng. Phần này sẽ hoạt động độc lập với dự án chung. Khi đó, việc đánh phiên bản cũng
thay đổi.

CVS
CVS Concurrent
Concurrent Versioning
Versioning System
System


Một số khái niệm cơ bản
Merge



Có nhiều nhánh (branch) có thể được tách ra làm việc độc lập. Nếu họ trong khi làm thấy

rằng có một số lỗi (bug) phát sinh và có ảnh hưởng tới nhánh chính họ sẽ làm sao để cập
nhật nhanh nhất mã trong nhánh chính và dùng cách ghép tập tin (merge).



Ghép tập tin sẽ cho phép loại bỏ được việc phải cắt dán nhiều lần trên các phiên bản
khác nhau của hệ thống.

CVS
CVS Concurrent
Concurrent Versioning
Versioning System

System


Một số khái niệm cơ bản
Version & Revision

 Mỗi tập tin có thể có nhiều phiên bản (version). Các phiên bản được đánh số khác nhau.
 Một số VCS sử dụng hệ thống phiên bản 1, 2, 3,... trong khi có một số khác sử dụng hệ thống
1.0, 1.1, 1.2,... Các VCS thường lưu phiên bản cuối cùng và các thay đổi của phiên bản cuối
so với phiên bản trước đó.

 Các số phiên bản (như 1.0, 1.1, hay 1.2,...) còn được gọi là Revision.

CVS
CVS Concurrent
Concurrent Versioning
Versioning System
System


to be continue…



×