Subversion (viết tắt là SVN) là một hệ thống quản lí version đượ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ệcnhiề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....
Nội dung trích xuất từ tài liệu:
BÁO CÁO VỀ SVN VÀ GOOD CODE BÁO CÁO VỀ SVN VÀ GOOD CODEI. Tìm hiểu về Subversion (SVN)1.Subversion là gì?Subversion (viết tắt là SVN) là một hệ thống quản lí version đượ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ệcnhiề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.2. Phân loại và phần mềm quản lí subversion?Subversion hoạt động dựa trên mô hình quản lí tập trung kiểu client/server. Mô hình này có hai khái ni ệm c ơ bản:Repository đặt ở server là nơi tập trung quản lí các phiên bản của các tập tin. Working Copies đặt ở client là cácphiên bản làm việc của các tập tin trong repository. Vì vậy, bạn cần phải có một phần mềm server và một phần mềm client. Ở đây chúng ta sẽ nói nhiều về phầnmềm SVN client, có thể chia làm ba loại chính: • Stand-alone clients: đứng như một ứng dụng độc lập, không phụ thuộc vào các phần mềm khác • Desktop-integrated client: loại được tích hợp vào các phần mềm desktop (ví dụ như TortoiseSVN) , m ỗi khi bạn click phải chuột vào màn hình destop sẽ thấy các chức năng của SVN client • IDE plug-in clients: loại tích hợp thêm các công cụ lập trình (IDE), ví dụ Subclipse được tích hợp vào Eclipse3. Ưu điểm và khuyết điểm của TortoiseSVNƯu điểm: commit nhanh chóng, GUI dễ xài, là open sourceKhuyết điểm: tính năng lock không hoạt động ở google host4. Những thao tác cơ bản trong TortoiseSVN3.1. Tạo thư mục Repository (thư mục để chứa các file trên server)Chức năng: Tạo một thư mục tên bất kì tại nơi bạn muốn đặt server.Cấu trúc bên trong thư mục RepositoryThao tác: Tạo một thư mục trống, ví dụ: D:/Subversion/MyRepository. Click vào thư mục vừa tạo và click chuộtphải, chọn TortoiseSVN→Create Repository.Chú ý: không nên thay đổi các file trong thư mục Repository3.2. ImportChức năng: import dữ liệu cho RepositoryThao tác: • Right-Click trên thư mục chứa dữ liệu muốn import, chọn TortoiseSVN→Import • Chọn đường dẫn đến Repository, click OK3.3. SVN CheckoutChức năng: update những thay đổi trên Repository về máyThao tác: • Tạo một thư mục lưu trữ và di chuyển vào đó(ví dụ D:\Client1), click chuột phải, chọn SVN Checkout… • Nhập URL repository trên server. Trong Box Checkout Depth gồm 4 lựa chọn: Fully recursive: checkout toàn bộ cấu trúc thư mục, các file dữ liệu trên Repository Immediate children, including folders: Chỉ checkout cấu trúc thư mục và các file bên ngoài Only file children: chỉ checkout các file bên ngoài Only this item: chỉ checkout được thư mục Repository mà không có cấu trúc hay dử liệu Sau đó nhấn OK để tiếp tục. • Nếu check out thành công, bạn sẽ thấy trong thư mục xuất hiện thư mục .svn(thư mục ẩn) cùng tất cả các file có trên server. Bạn có thể chỉnh sửa cũng như tạo mới, xóa bớt các file trong đó.3.4. Update dữ liệuChức năng: Update toàn bộ những cái khác nhau giữa Repository và Folder UpdateThao tác:Cách 1: • Right-Click trên Folder đã được checkout, chọn “SVN Update”.Cách 2: • Right-Click trên Folder đã được checkout, chọn TortoiseSVN→Check for modifications. • Click chọn Check repository • Right-Click trên file cần update, chọn “Update” • Tùy chỉnh các thông số rồi chọn OK để update 3.53.5. Repository BrowserChức năng: làm việc trực tiếp trên repository, cho phép bạn xem các cấu trúc và trạng thái của repositoryThao tác: • Right-Click trên một thư mục, chọn TortoiseSVN→ Repo-browser. • Nếu Right-Click trên thư mục chưa được checkout thì sẽ phải truyền thêm đường dẫn đến Repository3.6. SVN Commit và những điều cần lưu ý khi submit codeChức năng: upload file chỉnh sửa lên trên serverThao tác và chú ý: • Copy file đã chỉnh sửa vào thư mục ban đầu checkout • Click chuột phải vào thư mục đó, chọn lênh SVN Commit • Sau đó, một window sẽ hiện ra, box message cho phép bạn viết thêm ghi chú về thay đổi, box Changes Made, cho phép bạn kiểm tra lại các file cần submit, nên đánh dấu vào tất cả các checkbox chưa được đánh, sau đó click OK • Một window mới hiện ra, yêu cầu bạn nhập username và password. Mỗi người đều có một Username và Password của riêng mình, lưu ý ở Username và Password ở đây không phải là ID và Pass c ủa Gmail mà là ID và Pass của Project. Click vào google.com password để lấy password. Nhấn OK (Những lần sau sẽ không hiện ra khung Username và password nữa) • Chờ chương trình xử lí rồi nhấn OK để kết thúcChú ý: chỉ nên commit những file chung cho project, những file chỉ sử dụng cho riêng mình (ví dụ các file test,backup…) các bạn không nên commit.3.7. Xử lí khi bị conflictConflict xảy ra khi 2 client đồng thời thay đổi nội dung của của 1 file.Ví dụ:Động tác 1: Trong thư mục client1, check out, sau đó tạo file bất kì (ví dụ main.cpp), commit file main.cpp, edit filemain.c, thêm vào dòng “I am client1” rồi save file. (chưa commit)Động tác 2: Ra khỏi thư mục client1, tạo thư mục client2 (đóng vai trò như một client khác đang cùng tham giaproject với client1). Checkout như client1, edit file main.c, thêm vào dòng “I am client2”. Commit file main.cTrở 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 quamain.cpp.mine, còn file main.cpp sẽ có nội dung mà cả 2 client đã thay đổi. Xem file main.cpp để “đoán” xemchuyệ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ọnTortoiseSVN→Check for modification). Sau khi đã chỉnh sửa xong file main.cpp, bạn phải thông báo cho SVN rằngconflict đã được fix bằng cách click chuột phải, ...