Thiết kế website, Thiết kế web, Thiết kế web chuyên nghiệp

Site map|Hỗ trợ

Công nghệ, giải pháp

Hướng dẫn sử dụng Tortoise SVN (Subversion) để quản lý code

Hướng dẫn sử dụng Tortoise SVN (Subversion) để quản lý codeĐây là phần mềm quản lý code, phục vụ cho việc các nhóm phát triển phân mềm làm việc nhóm, làm việc online, quản lý các version code.




1- Tortoise SVN là gì?

Subversion(viết tắt là SVN) là một hệ thống quản lí version (version control system(VCS)) được giới thiệu vào năm 2000 bởi công ty CollabNet. Đây là hệ thống hỗ trợ làm việc theo nhóm rất hiệu quả. Khi một nhóm làm việc cùng trên một project, việc nhiều người cùng chỉnh sửa nội dung của một file là điều không thể tránh khỏi. SVN cung cấp các chức năng để có thể thực hiện việc này một cách đơn giản và an toàn.

Về mặt khái quát, SVN giống như một hệ thống file server mà các client có thể download và upload file một cách bình thường. Điểm đặt biệt của SVN là nó lưu lại tất cả những gì thay đổi trên hệ thống file: file nào đã bị thay đổi lúc nào, thay đổi như thế nào, và ai đã thay đổi nó. SVN cũng cho phép recover lại những version cũ một cách chính xác. Các chức năng này giúp cho việc làm việc nhóm trở nên trơn tru và an toàn hơn rất nhiều.

TortoiseSVN là một chương trình phía client của Subversion system. Chương trình có thể download miễn phí.

 

2- Cài đặt VisualSVN lên server và cách tạo Project

2.1 Download VisualSVN để cài đặt lên server: http://www.visualsvn.com/server/



2.2 Bắt đầu quá trình cài đặt


Install in a position on hardware, for example:
  • C:\Program Files\VisualSVN Server
Select the position for the folder containing data (Usually you should put into a safe hardware):
  • C:\Repositories

Nhấn Finish để hoàn thành.


2.3 Cách sử dụng

- Cách Quản lý và tạo Repository 


Đây là hình ảnh khi Visual SVN đã được chạy. Chúng ta tạo mới một user.


Nhập thông tin username/password


Bước tiếp theo chúng ta tạo mới một Repository với tên JavaProjects. Đây là một Repository rỗng chưa có dữ liệu, dữ liệu sẽ được đẩy lên server từ một subversion client (một thành viên trong nhóm lập trình). Và được các thành viên khác lấy về. Các thành viên có thể sửa đổi và đẩy lên Repository.

Mặc định không cho phép ai truy cập vào Repository này, chúng ta sẽ phân quyền sau.

Nhấn phải chuột vào Repository "JavaProjects" và chọn Properties


Nhấn Add để thêm user có quyền truy cập vào Repository này.


Lựa chọn quyền hạn của User.


Tương tự bạn có thể tạo thêm một Repository khác WorkingDatas


Đến đây việc cài đặt Visual SVN cho server đã thành công.

3. Cài đặt và cách get code trên máy Client

3.1 Download Tortoise SVNhttp://tortoisesvn.net/downloads.html


Tùy thuộc vào hệ điều hành của bạn là 64 hay 32 bit để download cho đúng.

3.2 Cài đặt Tortoise SVN:


Việc cài đặt thành công, bạn cần phải khởi động lại máy tính.

3.3 Cách sử dụng Tortoise SVN:

- Import dữ liệu lên Repository:

Trước hết cần một thành viên trong nhóm chia sẻ dữ liệu  ban đầu lên SVN Repository. Nếu không có dữ liệu gì thì có thể bỏ qua bước này.

Giả sử tôi import các dữ liệu file trong thư mục Documents lên SVN Repository:




Trên Visual SVN đã tạo sẵn một Repository có tên WorkingDatas

Bạn có thể xem lại tài liệu hướng dẫn cài đặt và quản lý Visual SVN.
Nếu bạn đã đăng ký vào tạo một SVN Repository miễn phí trên XP-DEV. Bạn sẽ có một URL, copy URL này.


Copy URL:


URL Copy được có thể chứa tên của máy chủ SVN.
  • https://TRAN-VMWARE/svn/WorkingDatas/

Bạn có thể thay đổi tên máy chủ bằng địa chỉ IP.

Nếu bạn đã đăng ký tài khoản và tạo một SVN Repository trên XP-DEV, bạn sẽ có một URL, hãy copy URL này.


Nhấn phải chuột vào thư mục Documents, chọn:
  • TortoiseSVN/Import...



Nhập vào đường dẫn của SVN Repository.
  • https://TRAN-VMWARE/svn/WorkingDatas/



Dữ liệu đã được import lên SVN Repository.


Nhìn trên Visual SVN:


- Checkout

Tất cả các thành viên nhóm sẽ checkout các dữ liệu từ trên Repository về máy tính của mình, bao gồm cả người import dữ liệu ban đầu vào SVN Repository.
Tại các máy tính của các thành viên, tạo mới một thư mục rỗng nào đó, và checkout dữ liệu từ SVN Repository về đó. Thư mục này sẽ là thư mục làm việc của mỗi thành viên trên máy tính của mình.


Dữ liệu đã được lấy về.


- Commit và Update

Checkout là hành động lấy toàn bộ dữ liệu được chia sẻ trên Repository xuống máy địa phương lần đầu tiên. Sau đó dữ liệu được sửa đổi tại địa phương. Việc đưa dữ liệu đã thay đổi lên Repository được gọi là Commit. Và việc lấy dữ liệu đã thay đổi về là hành động Update.
Bây giờ chúng ta sẽ sửa (hoặc thêm) file trên các thư mục rồi Commit lên.
Ví dụ tôi thay đổi file TeamNote.txt và save lại, khi đó biểu tượng SVN của file này thay đổi, thông báo rằng file này đã bị sửa đổi.


Tiếp theo tôi tạo mới một file TeamTodo.txt. Biểu tượng của file mới được tạo ra có dấu ?, thông báo rằng file này mới, và chưa được quản lý bởi SVN.


Thư mục SVN chứa file có dữ liệu bị sửa đổi cũng thay đổi biểu tượng.


Để Commit dữ liệu lên SVN Repository, nhấn phải chuột vào file hoặc cả thư mục cần Commit, chọn SVN Commit...


Check chọn các file cần commit trên danh sách.
  • Mặc định Tortoise SVN tự động check vào các file có sửa đổi.


Update:

Thành viên khác trong nhóm có thể Update các dữ liệu mới nhất từ SVN Repository.

- Các chức năng khác của Tortoise SVN 

Trong Tortoise SVN, 2 chức năng thường dùng nhất là CommitUpdate. Ngoài ra nó còn nhiều chức năng khác.


- Add to Ignore list 
Trường hợp bạn có một thư mục hoặc file không muốn SVN bỏ qua, không đưa lên SVN Repository. Bạn có thể sử dụng chức năng:
  • Add to Ignore list



Nhấn phải chuột vào file hoặc thư mục cần SVN bỏ qua. Chọn:


Sau đó Commit thư mục cha:


Đôi khi bạn nhận được thông báo lỗi "Out of date". Trong trường hợp đó bạn phải sử dụng chức năng update trước khi commit lên.


Tortoise SVN gợi ý bạn Update trước.


Sau đó bạn có thể tiếp tục Commit.


- Revert 
Revert sử dụng để trả lại dữ liệu ban đầu. Chẳng hạn khi bạn sửa đổi dữ liệu của một vài file, revert giúp cho file trở lại như trước khi thay đổi.


- Get Lock & Release Lock 

Bạn đang sửa một vài file tại máy địa phương. Và trong quá trình sửa bạn không muốn một người nào đó trong nhóm Commit dữ liệu các file đó lên Repository, bạn có thể sử dụng chức năng "Get Lock" để khóa lại. Sau khi sửa đổi xong, bạn có thể Commit và sử dụng chức năng "Release Lock" để mở khóa.

Get Lock:


Release Lock:


4. Xử lí khi bị conflict

Conflict xảy ra khi 2 client đồng thời thay đổi nội dung của của 1 file. Để hiểu rõ hơn về conflict, các bạn làm theo ví dụ sau:

Trong thư mục client1, check out, sau đó tạo file bất kì (ví dụ main.c).

Commit file main.c.

Edit file main.c, thêm vào dòng “I am client1”. Save file. (chưa commit)

Ra khỏi thư mục client1, tạo thư mục client2 (giả định đây là 1 client khác cùng tham gia 1 project với client1). Check out as client2.

Edit file main.c, thêm vào dòng “I am client2”. Commit file main.c

Trở lại thư mục client1. Commit file main.c. Bảng hiển thị lỗi sẽ hiện ra và bạn sẽ không thể commit lên server.

Cách khắc phục:

Trước tiên bạn phải update. Click chuột phải, chọn SVN update. File main.c của bạn sẽ được copy qua main.cpp.mine, còn file main.cpp sẽ có nội dung mà cả 2 client đã thay đổi. Xem file main.cpp để “đoán” xem chuyện gì đã xảy ra và chỉnh sửa lại. Hoặc bạn có thể dùng check modification tool(click chuột phải, chọn TortoiseSVN→Check for modification). Sau khi đã chỉnh sửa xong file main.cpp, bạn phải thông báo cho SVN rằng conflict đã được fix bằng cách click chuột phải, chọn TortoiseSVN→Resolved… Sau đó mới có thể commit được.

Chúc các bạn thành công!


Bình luận