TortoiseSVN

Report
TortoiseSVN
Mục tiêu
Nội
dung
- Giúp bạn có 1 cái nhìn rõ hơn về TortoiseSVN
- Hướng bạn thao tác với các chức năng của
TortoiseSVN theo cách đơn giản, nhanh và gọn.
- TortoiseSVN?
- Các thao tác phổ biến
- Cài đặt
- Branch, Tag
- Phân quyền
- Demo
- Repository
- Revision
TortoiseSVN ?
• Phần mềm nguồn mở free phía client cho hệ thống
Quản lý phiên bản
• Các tính năng liên quan tới bài học:
– Atomic commits
– Central Repository
– Thao tác trên Command line & GUI
• Ưu, khuyết điểm
– Ưu: ưu điểm của atomic commit, có GUI dễ xài, free
– Khuyết: nhiều khi gặp những lỗi sai quá trí tuệ, tính năng
lock không hoạt động ở Google host
Cài đặt
Step 1
Step 2
Cài đặt
Step 3
Cài đặt
Step 4
Step 5
Cài đặt
Step 7
Step 6
Step 8
Phân quyền
Repository
1
Tạo Repository
2
Import dữ liệu cho Repository
3
Checkout dữ liệu
4
Update dữ liệu
5
Repository Browser
Tạo Repository
Gồm 3 bước:
• Mở Windows Explorer.
• Tạo một New Folder và đặt tên cho nó.
• Right-Click trên Folder vừa tạo, chọn “TortoiseSVN”
=> “Create respository here”.
Tạo Repository
• Cấu trúc thư mục bên trong của Repository
Import dữ liệu cho
Repository
• Right-Click trên Folder chứa dữ liệu muốn import, chọn
“TortoiseSVN” => “Import”.
Import dữ liệu cho
Repository
• Chọn đường dẫn đến Repository => OK
Checkout dữ liệu
• Tạo/Chọn Folder muốn chứa dữ liệu được checkout từ
Repository.
• Right-Click trên Folder vừa chọn, chọn “SVN Checkout”.
Checkout dữ liệu
Checkout dữ liệu
Checkout Depth: gồm 4 lựa chọn
• Fully recursive
• Immediate children, including folders
• Only file children
• Only this item
Checkout dữ liệu
• Fully recursive: Checkout toàn bộ cấu trúc thư mục,
các file dữ liệu trên Repository.
Ví dụ:
Repository
trunk(trunk.txt), braches(branch.txt), tags(tag.txt), other.txt
Sau khi Checkout
[.svn], trunk(trunk.txt), braches(branch.txt), tags(tag.txt),
other.txt
Checkout dữ liệu
• Immediate children, including folders: Chỉ Checkout
cấu trúc thư mục và các file bên ngoài.
Ví dụ:
Repository
trunk(trunk.txt), braches(branch.txt), tags(tag.txt), other.txt
Sau khi Checkout
[.svn], trunk(), braches(), tags(), other.txt
Checkout dữ liệu
• Only file children: Chỉ Checkout các file bên ngoài.
Ví dụ:
Repository
trunk(trunk.txt), braches(branch.txt), tags(tag.txt), other.txt
Sau khi Checkout
[.svn], other.txt
Checkout dữ liệu
• Only this item: Chỉ checkout được thư mục Repository
mà không có cấu trúc hay dữ liệu.
Ví dụ:
Repository
trunk(trunk.txt), braches(branch.txt), tags(tag.txt), other.txt
Sau khi Checkout
[.svn]
Update dữ liệu
• Right-Click trên Folder đã được checkout, chọn “SVN
Update”.
Update dữ liệu
• Lưu ý: Update toàn bộ những cái khác
nhau giữa Repository và Folder Update.
Update dữ liệu
• Right-Click trên Folder đã được checkout, chọn
“TortoiseSVN” => “Check for modifications”.
Update dữ liệu
• Click chọn Check repository
Update dữ liệu
• Right-Click trên file cần update, chọn
“Update”
Update dữ liệu
• Tùy chỉnh các thông số rồi chọn OK để update
Repository Browser
• Right-Click trên một Folder, chọn “TortoiseSVN” =>
“Repo-browser”.
Repository Browser
• Nếu Right-Click
trên Folder
chưa được
checkout thì sẽ
phải truyền
thêm đường
dẫn đến
Repository.
Revision
Tổng Quát Về Revion Log Dialog
Click to add title in here
Cách Sử Dụng Revison Log Dialog
Click to add title in here
Revision Log Dialog
 Khái niệm Revision :
 Cứ mỗi một thay đổi trên thùng chứa sẽ tạo ra 1 revison.
 Revision Log Dialog :
 Là một công cụ để xem được những thay đổi như thế nào và
thao tác với các revision đó trên thùng chứa.
Revision
Tổng Quát Về Revion Log Dialog
Click to add title in here
Cách Sử Dụng Revison Log Dialog
Click to add title in here
Nơi lưu lại thông
tin của các revision
trong quá trình làm
dự án
Cho biết các hành
động như : add,
modify, delete trên
các revision
Lưu lại thông tin
người đã thực hiện
các công việc bên
actions
Ngày thực hiện
action tạo ra một
revision mới trong
thùng chứa
Thông tin chi tiết
đã làm gì trên
revision đó
Các ký hiện của action
Một revision đã thay đổi
1 file hay 1 thư mục
Một revision đã thêm 1 file
hay thư mục
Một revision đã xóa 1 file
hay thư mục
Một revision đã đổi chỗ
1 file hay 1 thư mục
Thông tin trong
message
Đường dẫn nơi
chứa file đưa lên
thùng chứa
Những tính năng cơ bản của Revision Log Dialog
• Compare With Working
Copy
– Dùng để so sánh nội dung
của file A trên thùng chứa
và nội dung của file A trên
máy làm việc.
• Diff
– Để xem xét sự thay đổi
của một file tài liệu
trong dự án qua những
lần Commit, ta dùng
công cụ Diff.
– Công cụ Diff cho ta
những thay đổi giữa 2
Revision.
• Blame
– Đôi khi, ta muốn biết dòng
nào đã thay đổi, và ai đã
thay đổi dòng nào trong
file.
 Sử dụng Blame
– Lệnh blame có thể chọn
xem xét thay đổi từ đầu
hoặc từ một revision cụ
thể nào đó.
Commit
Commit thành công và khi có conflict
Người 2
Người 1
Changelist
Undo/Revert & Cleanup
Cleanup
Right click >>TortoiseSVN >> Cleanup
Conflict and Diff
Update Your Working Copy With
Changes From Others
1
2
Resolve conflict
3
View Difference
4
Lock file
Update Your Working Copy With
Changes From Others
Update Your Working Copy With
Changes From Others
Update Your Working Copy With
Changes From Others
Update Your Working Copy With
Changes From Others
• Nếu muốn update/check out một revision bất kỳ nào đó thì nhấn phải chuột vào vùng
trống bất kỳ trong folder đang làm việc rồi chọn TortoiseSVN → Update to Revision...
 chọn revision  nhập user name , pass
Update Your Working Copy With
Changes From Others
Chọn ok , yêu cầu nhập user name, pass:  nhập xong ok
Update Your Working Copy With
Changes From Others
Bạn có thể chọn nhiều file/folder rồi chọn update
Update Your Working Copy With
Changes From Others
Nếu bạn muốn lấy các thông báo lỗi thì chọn TortoiseSVN → Check
for Modifications. Nó sẽ liệt kê các file bị lỗi. Sau đó xóa chúng đi
Update Your Working Copy With
Changes From Others
Resolve conflict
Có đôi lúc, bạn sẽ có gặp phải một xung đột khi bạn cập nhật các tập tin từ thùng
chứa. Một xung đột xảy ra khi hai hay nhiều developers đã thay đổi cùng một số
dòng của một tập tin.
Resolve conflict
Khi mở cái file làm việc bị xung đột ra ( có hình chấm than bên cạnh file ) bạn
sẽ thấy nội dung file như sau
<<<<. mine :
phần chỉnh sửa của bạn
=====
Phần chỉnh sửa của người khác
Text in
here
Resolve conflict
Để giải quyết xung đột, bạn có thể chạy công cụ merge hay trình soạn thảo giúp
giải quyết xung dột của tortoise : TortoiseSVN → Edit Conflicts
Text in
here
Resolve conflict
TortoiseMerge hiện ra cho thấy các chỗ bị lỗi trong file làm việc của bạn và trên
thùng chứa
Text in
here
Resolve conflict
Nhấn vào vùng ??? và sửa nội dung sau đó save nó lại
Text in
here
Resolve conflict
Text in
here
Resolve conflict
Text in
here
Viewing Differences
Để xem sự khác nhau giữa hai phiên bản , tortoise xây dựng một tool tên là
TortoiseMerge cho phép xem sự khác nhau giữa hai tập tin văn bản
TortoiseSVN cũng có một công cụ có tên TortoiseIDiff. Tất nhiên, bạn có thể sử
dụng chương trình khác mà bạn yêu thích, nếu bạn muốn
Text in
here
Viewing Differences
Thay đổi cục bộ : nếu bạn muốn xem những thay đổi mà bạn đã làm trong cái
bản làm việc của mình bạn chỉ việc chọn TortoiseSVN → Diff.
Text in
here
Viewing Differences
Text in
here
Viewing Differences
Sự khác biệt giữa các branch/tag :
Nếu bạn muốn xem đã thay đổi những gì trên trunk ( những gì bạn đang làm
trên một branch ) hay trên 1 branch đặc biệt. thì trong khi bạn nhấn chuột
phải vào 1 file , hãy nhấn phím Shift , sau đó chọn TortoiseSVN → Diff
with URL
Text in
here
Viewing Differences
Text in
here
Viewing Differences
Text in
here
Viewing Differences
Bạn có thể dùng repository browser : chọn thư mục . Sau đó chuột phải chọn
show log, trong show log, chọn 2 revision chuột phải chọn compare revision
Text in
here
Viewing Differences
Text in
here
Viewing Differences
Chọn thư mục , chuộtt phải chọn show log
Text in
here
Viewing Differences
Text in
here
Viewing Differences
Chọn 2 revision, chuột phải , chọn compare revision
Text in
here
Viewing Differences
Text in
here
Viewing Differences
Nếu muốn xem sự khác nhau giữa bản commit cuối với bản đang làm việc hiện
tại, ta nhấn chuột phải vào file và chọn TortoiseSVN → Diff with previous
version
Text in
here
Viewing Differences
Text in
here
Viewing Differences
Nếu bạn muốn xem sự khác nhau giữa một pbản đặc biệt nào đó với bản đang
làm việc, chuột phải vô bất kỳ đâu trong thư mục làm việc, chọn show log , chọ
pbản muốn xem , chuột phải  chọn compare with working copy
Text in
here
Viewing Differences
Text in
here
Viewing Differences
Sự khác biẹt giữa các file :
Chọn 2 file TortoiseSVN → Diff. ( svn diff )
Tất cả các thay đổi trong 1 commit :
Trong revision log ( TortoiseSVN  show log ) , bạn chọn revision muốn xem,
chọn Show changes as Unified-Diff
Text in
here
Viewing Differences
Text in
here
Viewing Differences
Difference with blame information
chuột phải vào file bất kỳ muốn xem chọn blame
Text in
here
Viewing Differences
Text in
here
Viewing Differences
Ai đã thay đổi dòng nào ?
Đôi khi ta không chỉ muốn biết dòng nào đã được thay đổi, mà ta còn muốn
biết cả ai đã thay đổi những dòng đặc biệt trong một file. Khi đó ta dùng
lệnh TortoiseSVN  Blame
Trong tortoiseBlame, muốn tìm một thông tin nào dó trong blame, chọn
Text in
here find , khi tìm thấy nó sẽ tô đậm dòng đó, không tìm thấy xuất hiện
Edit
thông báo
Viewing Differences
Text in
here
Viewing Differences
Muốn di chuyển đến một dòng nào đó Edit  Go To line
Text in
here
Viewing Differences
Text in
here
Viewing Differences
Khi bạn di chuyển chuột vào cột thông tim blame tịa một dòng nào đó thì
dòng đó được đánh dấu. bạn nhấn chuột phải vào dòng đó sẽ có các lựa
chọn : blame previous version, show change, show log
Text in
here
Hạn chế chỉ cho phép xem không thể thay đổi, không cho thấy các thay đổi
đã được thực hiện
Viewing Differences
Text in
here
Viewing Differences
Difference between folders
TortoiseSVN không xây dựng công cụ hỗ trợ cho phép xem sự khác biệt giữa
hai folder, tuy nhiên có một vài công cụ khác hỗ trợ cho việc này như :
http://winmerge.org : winmerge : open-source
Text in
http://www.perforce.com/perforce/products/merge.html
: Perforce Visual
here
Merge Tool
LOCK FILE
Text in
here
Branches
• Khi phát triển một dự án, đôi khi ta cần
phát triển thêm một chức năng mới,
nhưng vẫn muốn giữ kết quả hiện có
Ta cần tạo ra nhánh (branch) riêng làm
việc bên cạnh nhánh chính (main branch –
trunk).
Khi chức năng trong nhánh đã ổn định, ta
mới thực hiện merge các thay đổi vào
nhánh chính.
Tags
• Tagging là khả năng đánh dấu dự án tại
một phiên bản cụ thể
 Ta có thể lấy ra phiên bản này tại bất kỳ
thời điểm nào về sau.
• Tagging thường được dùng để đánh dấu
một release hay một bản build nào đó.
Tạo Branches/Tag
Switch
Merge
• Branch dùng để phát triển dự án theo
nhiều hướng khác nhau. Đôi khi, ta sẽ có
nhu cầu merge những thay đổi trong
branch vào trunk hoặc ngược lại.
• SubVersion cho phép ta thực hiện merge
từ một revision trong 1 branch sang 1
revision của branch khác.
• TortoiseSVN->Merge
Merging
Create/Apply Patch
• Một số dự án open source có nhiều người cùng
phát triển, nhưng nếu ai cũng có thể commit thì
dự án có thể bị đổ vỡ hoàn toàn.
• Patch giúp cho những người phát triển chính(có
quyền commit) đọc trước những phần do người
khác phát triển, và sau đó commit phần đó lên
dự án chính.
• Extension là .patch hoặc .diff
• TortoiseSVN->Create Path
• TortoiseSVN->Apply Path…
Export
• Đôi lúc ta muốn copy cây làm việc mà
không có những thư mục do svn tạo, ví dụ
như dùng trong release source hoặc
export vào 1 web server nào đó.
• Thay vì copy và xóa những thư mục svn
tạo. TortoiseSVN hỗ trợ lệnh Export cho
công việc này.
• TortoiseSVN ->Export
Thank You!

similar documents