Hệ thống quản lý phiên bản văn bảnHệ thống quản lý phiên bản văn bảnHệ thống quản lý phiên bản văn bảnHệ thống quản lý phiên bản văn bảnHệ thống quản lý phiên bản văn bảnHệ thống quản lý phiên bản văn bảnHệ thống quản lý phiên bản văn bảnHệ thống quản lý phiên bản văn bảnHệ thống quản lý phiên bản văn bảnHệ thống quản lý phiên bản văn bảnHệ thống quản lý phiên bản văn bảnHệ thống quản lý phiên bản văn bảnHệ thống quản lý phiên bản văn bảnHệ thống quản lý phiên bản văn bảnHệ thống quản lý phiên bản văn bản
Trang 3Ngành: Công ngh Thông tin
ng d n: ThS Nguy n Tr
Trang 4I H C DÂN L P H I PHÒNG c l p - T do - H nh phúc
Sinh viên: Ph m Trung M nh Mã SV: 1351010013
L p: CT1301 Ngành: Công ngh Thông tin
Trang 51 N i dung và các yêu c u c n gi i quy t trong nhi m v tài t t nghi p
Trang 7PH N NH N XÉT TÓM T T C A CÁN B NG D N
ng c tài t t nghi p (so v i n i dung yêu c ra trong nhi m v tài t t nghi p)
m c a cán b ng d n: m ghi b ng s và ch )
( Ký, ghi rõ h tên )
Trang 8tài t t nghi p (v các m lý lu n, thuy t
th c t , )
2 Cho m c a cán b ph n bi n ( m ghi b ng s và ch )
Ngày
Cán b ch m ph n bi n ( Ký, ghi rõ h tên )
Trang 9M C L C 3
DANH M C HÌNH NH 5
DANH M C CÁC B NG 8
M T S THU T NG 9
L I C 10
L U 11
TH NG QU N LÝ PHIÊN B N 12
12
1.2 Các công c h tr qu n lý phiên b n hi n nay 12
1.3 Gi i thi u 13
1.4 L ch s phát tri n 14
1.5 Các khái ni m và thu t ng quan tr ng 14
14
c làm vi c 15
1.5.3 Khóa 15
1.5.4 D án, module và t p tin 15
1.5.5 Phân nhánh 16
1.5.6 Ghép t p tin 16
1.5.7 Phiên b n 16
1.6 Ki n trúc c a h th ng qu n lý phiên b n 17
1.6.1 H th ng qu n lý phiên b n c c b 17
1.6.2 H th ng qu n lý phiên b n t p trung 18
1.6.3 H th ng qu n lý phiên b n phân tán 19
1.6.4 Các thao tác c a h th ng qu n lý phiên b n t p trung 20
1.6.5 Các thao tác c a h th ng qu n lý phiên b n phân tán 28
Trang 10c x lý 29
1.7.1 V chia s t p tin 29
1.7.2 Các gi i pháp khóa s i m khóa 30
1.7.3 Các gi i pháp sao chép ch nh s a h p nh t 31
T K H TH NG 34
2.1 T ng quan v h th ng qu n lý phiên b n 34
2.2 Bài toán qu n lý phiên b n 35
2.2.1 Mô t bài toán 35
nh mô hình nghi p v 35
2.2.3 Phân tích h th ng 49
2.2.4 Thi t k h th ng 75
79
3.1 Gi i thi u ng d ng 79
3.1.1 Thông tin k thu t 79
3.1.2 K t qu c 79
3.2 Giao di n c 79
3.2.1.Giao di p 79
3.2.2.Giao di n qu n lý 80
3.2.3.Giao di n thêm tài li u 81
3.2.4.Giao di i dùng 82
3.2.5.Giao di n thêm danh m c và b ph n 83
3.2.6.Giao di n tìm ki m 83
3.2.7.Checkout t p tin 84
3.2.8.Checkin t p tin 84
3.2.9.Xem l ch s t p tin 85
K T LU N 86
TÀI LI U THAM KH O 87
Trang 11h th ng qu n lý phiên b n c c b 17
h th ng qu n lý phiên b n t p trung 18
h th ng qu n lý phiên b n phân tán 19
Hình 1.4 : T o m i m t kho r ng 20
Hình 1.5: T o m t b n sao làm vi c 21
Hình 1.6 : Áp d i trong b n sao v i m i .23
Hình 1.8 :C p nh t các b n sao làm vi i v 23
Hình 1.8 : H th ng qu n lý phiên b n t p trung 28
Hình 1.9 : H th ng qu n lý phiên b n phân tán 28
Hình 1.1 y 29
Hình 1.11 : Thao tác l y 29
Hình 1.12 : V c n tránh 30
Hình 1.13: Gi i pháp khóa-s i-m khóa 30
Hình 1.14 : Gi i pháp sao chép-ch nh s a-h p nh t 32
Hình 1.15 : Gi i pháp b n sao-ch nh s a-h p nh t (ti p theo) 32
Hình 2.1 : Ki n trúc c a m t ng d ng qu n lý phiên b n 34
Hình 2.2 : Mô hình ca s d ng m c t ng quát 38
Hình 2.3: Bi ca s d n lý b ph 39
Hình 2.4 : Bi ca s d 41
Hình 2.5 : Bi ca s d n lý danh m 43
Hình 2.6 : Bi ca s d n lý tài li 45
Hình 2.7 : Bi tu n t th c thi ca s d ph 49
Hình 2.8 : Bi c ng tác th c thi ca s d b ph n 49
Hình 2.9 : Bi tu n t th c thi ca s d m b ph 50
Hình 2.10 : Bi c ng tác th c thi ca s d m b ph n 50
Hình 2.11 : Bi tu n t th c thi ca s d C p nh tb ph n 51
Hình 2.12 : Bi c ng tác th c thi ca s d p nh tb ph 51
Hình 2.13 : Bi c ng tác th c thi ca s d b ph n 52
Trang 12Hình 2.14 : Bi c ng tác th c thi ca s d b ph n 52
n lý b ph n 53
Hình 2.16 : Bi tu n t th c thi ca s d Thêm danh m c 54
Hình 2.17 : Bi c ng tác th c thi ca s d Thêm danh m c 54
Hình 2.18 : Bi tu n t th c thi ca s d m danh m c 55
Hình 2.19 : Bi c ng tác th c thi ca s d m danh m c 55
Hình 2.20 : Bi tu n t th c thi ca s d p nh t danh m c 56
Hình 2.21 : Bi c ng tác th c thi ca s d p nh t danh m 56
Hình 2.22 : Bi tu n t th c thi ca s d Xóa danh m c 57
Hình 2.24 n lý danh m 58
Hình 2.25 : Bi tu n t th c thi ca s d i dùng 59
Hình 2.26 : Bi c ng tác th c thi ca s d 59
Hình 2.27 : Bi tu n t th c thi ca s d m i dùng 60
Hình 2.28 : Bi c ng tác th c thi ca s d m i dùng 60
Hình 2.29 : Bi tu n t th c thi ca s d p nh t i dùng 61
Hình 2.30 : Bi c ng tác th c thi ca s d p nh t i dùng 61
Hình 2.31 : Bi tu n t th c thi ca s d i dùng 62
Hình 2.32 : Bi c ng tác th c thi ca s d i dùng 62
Hình 2.33 : Mô hình phân tích .63
Hình 2.34 : Bi tu n t th c thi ca s d 63
Hình 2.35 c ng tác th c thi ca s d u 64
Hình 2.36 : Bi tu n t th c thi ca s d m tài li 64
Hình 2.37 : Bi c ng tác th c thi ca s d m tài li 65
Hình 2.38 : Bi tu n t th c thi ca s d p nh t tài li 65
Hình 2.39 : Bi c ng tác th c thi ca s d p nh t tài li 66
Hình 2.40 : Bi tu n t th c thi ca s d 66
Hình 2.41 : Bi c ng tác th c thi ca s d Xóa tài li 67
Hình 2.42 : Bi tu n t th c thi ca s d 67
Hình 2.43 : Bi c ng tác th c thi ca s d 68
Trang 13Hình 2.44 : Bi tu n t th c thi ca s d 68
Hình 2.45 : Bi c ng tác th c thi ca s d 69
Hình 2.46 : Bi tu n t th c thi ca s d ch s tài li 69
Hình 2.47 : Bi c ng tác th c thi ca s d ch s tài li 70
Hình 2.48 : Bi tu n t th c thi ca s d c h i tài li 70
Hình 2.49 : Bi c ng tác th c thi ca s d c h itài li 71
Hình 2.50 : Bi tu n t th c thi ca s d t tài li 71
Hình 2.51 : Bi c ng tác th c thi ca s d ttài li 72
Hình 2.52 : Bi tu n t th c thi ca s d y tr 72
Hình 2.53 : Bi c ng tác th c thi ca s d y tr 73 Hình 2.54 n lý tài li 74
Hình 2.55 : Mô hình l p thi t k gói ca s d n lý b ph 75
Hình 2.56 : Mô hình l p thi t k gói ca s d n lý danh m 75
Hình 2.57 : Mô hình l p thi t k gói ca s d 76
Hình 2.58 : Mô hình l p thi t k gói ca s d n lý tài li 77
Hình 2.59 : Mô hình thi t k d li u 78
Hình 3.1: Giao di p 79
Hình 3.2: Giao di p thành công 80
Hình 3.3: Giao di n qu n lý 80
Hình 3.4: Giao di n thêm tài li u 81
Hình 3.5: Giao di n khi thêm tài li u thành công 81
Hình 3.6: Giao di i dùng 82
Hình 3.7: Giao di n thêm b ph n 83
Hình 3.8: Giao di n thêm danh m c 83
Hình 3.9: Giao di n tìm ki m 83
Hình 3.10: Giao di n checkout t p tin 84
Hình 3.11: Giao di n checkin t p tin 84
Hình 3.12: Giao di n xem l ch s t p tin 85
Trang 14B ng 1.1 : Ba th h c a qu n lý phiên b n 14
B ng 2.1 : Các ch ng nghi p v 36
B ng 2.2 : Các tác nhân h th ng 36
B ng 2.3 : B ng bi u di n mô hình h th ng nghi p v 37
B ng 2.4 : Ca s d ph 39
B ng 2.5 : Ca s d m b ph 40
B ng 2.6 : Ca s d a b ph 40
B ng 2.7 : Ca s d ph 40
B ng 2.8 : Ca s d 41
B ng 2.9 : Ca s d 42
B ng 2.10 : Ca s d p nh 42
B ng 2.11 : Ca s d 42
B ng 2.12 : Ca s d 43
B ng 2.13 : Ca s d m danh m 44
B ng 2.14 : Ca s d a danh m 44
B ng 2.15 : Ca s d 44
B ng 2.16 : Ca s d 45
B ng 2.17 : Ca s d m tài li 46
B ng 2.18 : Ca s d p nh t tài li 46
B ng 2.19 : Ca s d 46
B ng 2.20 : Ca s d 47
B ng 2.21 : Ca s d 47
B ng 2.22 : Ca s d ch s tài li 47
B ng 2.23 : Ca s d c h i tài li 48
B ng 2.24 : Ca s d t tài li 48
B ng 2.25 : Ca s d y tr 48
Trang 16c h t em xin bày t tình c m và lòng bi th y Nguy n Tr
Trang 17Các h th ng thông tin trong các t ch c ngày càng ph c t p, h th
còn c n qu n lý các phiên b n v mã ngu n ph n m m Mã ngu n ph n m m khi
n Vi c phân b các công vi c cho l p trình viên
Vi c tìm hi u và nghiên c u xây d ng m t h th ng qu n lý phiên b n là
b n,
Trang 18: 1.1.
Qu n lý phiên b n (control version) trong phát tri n ph n m
phiên b n Subversion, Tortoisesvn, Git,
Bazaar, Mercurial, KnowledgeTree Các ph n m u là mã ngu n m , vì
Trang 19Internet Máy khách và máy ch có th cùng ch y trên m t máy n u h th ng
qu n lý phiên 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
và máy ch
Trang 20Networking Operations Concurrency Examples
First None One file at a time Locks RCS, SCCS
Second Centralized Multi-file Merge before commit
CVS, SourceSafe, Subversion, Team Foundation Server Third Distributed Changesets Commit before
merge Bazaar, Git, Mercurial
riêng
thanh, )
Trang 21
hi u ch nh n i dung c a nó Ch khi nào t p t
nhóm có th th c hi n nhi u d án khác nhau Các d án này có th chia s các t p
t d án con (sub-project) n m trong m t d án m
T p tin trong d án có th thu c v m t ho c nhi u d án (shared file).
Trang 221.5.5 Phân nhánh
nhánh chính Gi i pháp là dùng phân nhánh
Ví d : n u m t t p tin config.php trong nhánh chính có s phiên b n là 1.14 và
phiên b n m i là 1.14.1.2
1.5.6
M i t p tin có th có nhi u phiên b n (version) Các phiên b
khác nhau M i l n chúng ta hi u ch nh n i dung t p tin và c p nh
Trang 23b n c a t i Các VCS d ng thêm m t cách ghi nh n phiên b n
labeling , cho dù s phiên b n c a d i, nhãn c a
1.6.Ki n trúc c a h th ng qu n lý phiên b n
chính:Qu n lý phiên b n c c b (Local Version Control Systems), Qu n lý phiên
b nt p trung (Centralized Version Control System) và qu n lý phiên b n phân tán( Distributed Version Control System)
1.6.1
M t trong nh ng công c qu n lý phiên b n ph bi n là m t h th ng g i là
RCS(Revision Control System) Hi n v c s d ng trong các máy tính ngày
b n vá l i l i
Trang 241.6.2
Versioning System) có máy ch duy nh t ch a t t c các t p tin phiên
c chu n hóa trong qu n lý phiên b n (Xem hình 2) [8].
c coi là m t h th ng qu n lý phiên b n t p trung Khái ni m chính
trung tâm này
Trang 25Mercurial, Bazaar ho c Darcs) máy khách c n ki m tra các nh ch p m i nh t c a các t p tin Vì v y, n u b t k máy ch b h ng, các h th ng này s c ng tác thông qua nó, b t k nh ng kho c a máy khách có th sao chép l i các thi t l p c a máy
li u (Xem hình 3) [8].
Hình 1.3: h th ng qu n lý phiên b n phân tán
Trang 26H th ng phân tán là m t l a ch n m i.Trong qu n lý phiên b n phân tán, m i
Hai h th ng qu n lý phiên b n phân tán ph bi n nh t là Git và Mercurial.
m c a h th ng qu n lý phiên b n phân tán:
này gi i thi u m t s thao c a h th ng qu n lý phiên b n
Hình 1.4 : T o m i m t kho r ng
Trang 27c coi là khái ni m c t lõi c a qu n lý phiên b n.
tri n làm vi c cùng trên m t t p tin g c, m i th có th tr nên r t l n x n
Hình 1.5: T o m t
b n sao làm vi c.
Trang 28theo dõi t t c m i th Trong th c t , nó ph i theo dõi tình tr ng c a t ng t p tin.
Công c qu n lý phiên b n có th ghi l i các d u th i gian trên các t p tin làm
c n trong b n sao làm vi c V trí chính xác c a nó ph thu c vào công c
Trang 291.6.4.3 khi checkout(Commit)
tácvàodanh sáchg i là danh sách ch thay
i Các thao tác commitl y danh sách ch
c a cây trong kho
Hình 1.6 : Áp d i trong b n sao v i kho i
m i.
Hình 1.8 :C p nh t các b n sao làm vi i v
tr
Trang 301.6.4.5 Thêm (Add)
1.6.4.6 (Edit)
S a m t t p tin
thao tác ph bi n nh t khi s d ng m t h th ng qu n lý phiên b n Khi
checkout, b n sao làm vi c bao g m m t lo t các t p tin t i dùng
M t khác, m t s công c qu n lý phiên b n mu n b
b n sao làm vi c Mà không cho phép s a các t p tin g c
ng, các thao tác xóa s l p t c xóa các b n sao làm vi c c a t p tin,
danh sách ch
Trang 31gian
S d ng các thao tác di chuy n khi b n mu n di chuy n m t t p tin ho
các phiên b n riêng bi t
1.6.4.10 (Status)
Trang 32b n c n ph i s d ng thao tácdiff H th ng VCS có th th c hi n difftheo nhi u
khác
1.6.4.12 Hoàn nguyên (Revert)
M t hoàn nguyên hoàn toàn c a các b n sao làm vi c s v t b t t c các danh
Trang 331.6.4.15 (Branch)
T o ra m t nhánh khác khi phát tri n
t 3.0.x khi s a l i
ra m t nhánh cho 3.0.x b n s a l i, b n có th mu n s a nh ng l i x y ra trong dòng chính c a b n phát tri n là t t nh t N u không có các thao tách p nh t, b n
Trang 34Ngoài các thao tác k th a t h th ng qu n lý phiên b n t p trung, thì h
th ng qu n lý phiên b n phân tán còn thêm m t s thao tác khác
g m m ng các máy khách
Hình 1.8 : H th ng qu n lý phiên b n t p trung
kho làm vi c
Hình 1.9 : H th ng qu n lý phiên b n phân tán
Trang 351.6.5.2 (Push)
b hóa gi a hai phiên b n kho C th , thao
tác này x y ra khi m t phiên b
c c b mà mu n sao chép m t s danh sách ch vào phiên b n kho t xa Thông
b hóa gi a hai phiên b n kho C th , thao tác
mu n sao chép m t s danh sách t m t phiên
i phiên b n t p tin m i c a mình
y
Hình 1.11 : Thao tác l y
Trang 36Hình 1.12 : V c n tránh
1.7
n này
Hình 1.13: Gi i pháp khóa-s i-m khóa
Trang 37Khóa có th gây ra các v qu n lý t t p tin
m khóa Tình hình này gây ra r t nhi u trì hoãn không c n thi t
và lãng phí th i gian
Khóa có th gây ra tu n t không c n thi t: N c
các t p tin cùng m t lúc, và không gây ra thi t h i l n, gi s nh ng
nhau trong tình hu ng này
Khóa có th t o ra sai l ch v b o m t: Gi s Harry khóa và
Trang 38(t p tin config.php) Có th nh i c a Sally không trùng l p v i b n sao
mình tr l i kho.Hình 10 : Gi i pháp sao chép-ch nh s a-h p nh t và Hình 11:
Gi i pháp b n sao-ch nh s a-h p nh t (ti cho th y quá trình này
Hình 1.14 : Gi i pháp sao
chép-ch nh s a-h p nh t
Hình 1.15 : Gi i pháp b n
sao-ch nh s a-h p nh t (ti p theo)
Trang 39thay phiên nhau qu n lý ch t ch i các t p tin Mà không c n truy c p
tu n t [7]
Trang 402: PHÂN TÍCH
2
M t h th ng ki m soát phiên b n là m t ng d ng giúp các nhà phát tri n
(Edit)
File (More Edit)
Hình 2.1 : Ki n trúc c a m t ng d ng qu n lý phiên b n
Trang 44Qu n lý tài li ucó tác d ng thêm tài li u, tìm ki m tài li u, s a tài li u,xóa tài
li u, checkout tài li u, checkin tài li u, xem l ch s tài li u, ph c h i tài li u, Xét duy t tài li u, Xét duy t tài li u b h y khi checkin, H y tr ng thái checkout
Trang 47Mô t khái quát Khi mu n b sung thêm m t i qu n lý ho c i
dùng
Các tham chi u R
11
B ng 2.8 : Ca s d
Trang 48Mô t khái quát C p nh tthông tin c i dùng khi mu i
Trang 49Mô t khái quát Khi mu n b sung thêm m t danh m c.
Các tham chi u R
41
B ng 2.12 : Ca s d
Trang 50- Ca s d m danh m c
Tên ca s d ng Tìm ki m danh m c
Mô t khái quát Khi c n s a thông tin danh m c ho c c n xóa danh m c
Trang 51Mô t khái quát Khi mu n b sung thêm m t tài li u m i vào h th ng
khi c n
Các tham chi u R
21
B ng 2.16 : Ca s d
Trang 52- Ca s d m tài li u
Tên ca s d ng Tìm ki m tài li u
Tác nhân i qu n lý i dùng
Mô t khái quát Khi c n s a thông tin danh m c ho c c n xóa danh m c
Trang 53- Ca s d Checkout tài li
Tên ca s d ng Checkout tài li u
Tác nhân i qu n lý i dùng
Mô t khái quát i dùng mu n l y d li u t máy ch xu
Trang 54- Ca s d Ph c h i tài li u
Tên ca s d ng Ph c h i tài li u
Mô t khái quát Khi mu n ph c h i các tài li u xóa ho c các tài li u
h y khi xét duy t checkin
thêm tài li u, checkin tài li u lên h th ng
Trang 56Bi tu n t th c thi ca s d ng
Trang 57Hình 2.11 : Bi tu n t th c thi ca s d C p nh tb ph n
Bi u c ng tác th c thi ca s d ng
Hình 2.12 : Bi c ng tác th c thi ca s d C p nh tb ph
Trang 59n lý b ph n
Trang 64n lý danh m c
Trang 72Bi c ng tác th c thi ca s d ng
Hình 2.39 : Bi c ng tác th c thi ca s d p nh t tài li u 2.2.3.1.4 Ca s d tài li u
Bi tu n t th c thi ca s d ng
Hình 2.40 : Bi tu n t th c thi ca s d tài li u
Trang 73Bi c ng tác th c thi ca s d ng
Hình 2.41 : Bi c ng tác th c thi ca s d Xóa tài li u 2.2.3.1.5 Ca s d
Bi tu n t th c thi ca s d ng
Hình 2.42 : Bi tu n t th c thi ca s d Checkout tài li
: Nguoi dung : Page_CheckOut : DK_TimTaiLieu : DK_CheckoutTaiLieu : TaiLieu