Transcript TortoiseSVN

TortoiseSVN

Mục tiêu

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.

Nội dung

-

TortoiseSVN?

-

Cài đặt

-

Phân quyền

-

Repository

-

Revision

-

Các thao tác phổ biến

-

Branch, Tag

- Demo

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 6

Step 8

Step 7

Phân quyền

Repository

1 Tạo Repository 2 Import dữ liệu cho Repository 3 4 Checkout dữ liệu 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 1 Người 2

Changelist

Undo/Revert & Cleanup Cleanup

Right click >>TortoiseSVN >> Cleanup

Conflict and Diff

1 Update Your Working Copy With Changes From Others 2 3 4 Resolve conflict View Difference 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 for Modifications.

Check

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

phải vào 1 file , hãy nhấn phím : 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

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

 chọn

Show changes as Unified-Diff

)

show log )

, bạn chọn

revision

muốn xem,

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 Edit

find

, khi tìm thấy nó sẽ tô đậm dòng đó, không tìm thấy xuất hiện 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

đã đượ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

here

:

Perforce Visual 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!