1. Trang chủ
  2. » Giáo án - Bài giảng

Version Control Systems Introduction

17 673 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 178,45 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Chức năng của VCSCVS Concurrent Versioning System CVS Concurrent Versioning System  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 gh

Trang 2

Concurrent Version System

CVS

Concurrent Version System

Phạm Tấn Đạt - 51003033

Vũ Văn Hiền - 51003049

Phạm Văn Tiến - 51003192

Trần Minh Tân - 51003161

Lê Hoàng Minh Tâm - 51003157

CVS Concurrent Versioning System

CVS Concurrent Versioning System

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

Trang 3

VCS – Version Control Systems

CVS – Concurrent Version System

vs

CVS Concurrent Versioning System

CVS Concurrent Versioning System

Trang 4

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

CVS Concurrent Versioning System

CVS Concurrent Versioning System

Trang 5

Chức năng của VCS

CVS Concurrent Versioning System

CVS Concurrent Versioning System

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

Trang 6

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 Concurrent Versioning System

CVS Concurrent Versioning System

Trang 7

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 Concurrent Versioning System

CVS Concurrent Versioning System

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

Trang 8

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 Concurrent Versioning System

CVS Concurrent Versioning System

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

Trang 9

 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 Concurrent Versioning System

CVS Concurrent Versioning System

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

Trang 10

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 Concurrent Versioning System

CVS Concurrent Versioning System

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

Trang 11

 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 Concurrent Versioning System

CVS Concurrent Versioning System

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

Trang 12

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 Concurrent Versioning System

CVS Concurrent Versioning System

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

Trang 13

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 Concurrent Versioning System

CVS Concurrent Versioning System

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

Trang 14

Branch & branching

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 Concurrent Versioning System

CVS Concurrent Versioning System

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

1.2.1.1 1.2.1.2 1.2.1.3

1.2.1.1

1.4

1.4.1.1

1.2.1.2

merge

main trunk

branch branch

1.2.1.1.1.1 1.2.1.1.1.2

Trang 15

• 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 Concurrent Versioning System

CVS Concurrent Versioning System

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

Trang 16

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 Concurrent Versioning System

CVS Concurrent Versioning System

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

Trang 17

to be continue…

Ngày đăng: 30/07/2016, 16:34

TỪ KHÓA LIÊN QUAN