Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 28 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
28
Dung lượng
9,99 MB
Nội dung
TRƯỜNG ĐẠI HỌC CƠNG NGHỆ SÀI GỊN KHOA CƠNG NGHỆ THÔNG TIN BÁO CÁO MÔN PHÁT TRIỂN MÃ NGUỒN MỞ Tên đề tài: Cài đặt sử dụng phần mềm quản lý Phiên SVN Giảng viên hướng dẫn: Ths Bùi Nhật Bằng Sinh viên thực : Hoàng Thanh Tuấn Trần Thanh Tùng Lai Đặng Hồng Thiện Phan Mai Thiên Vũ TP.HCM Năm 2021 Bảng phân cơng cơng việc Họ tên – % đóng góp Hoàng Thanh Tuấn – 25% Trần Thanh Tùng – 25% Lai Đặng Hồng Thiện – 25% Công việc phân công - Thiết kế silde Powerpoint Tổng hợp báo cáo thuyết trình Thuyết trình Powerpoint lịch sử, định nghĩa cần biết để làm việc với SVN - Thuyết trình Powerpoint so sánh Subversion tool khác - Thuyết trình Powerpoint chức SVN Demo phần phân nhánh Phan Mai Thiên Vũ – 25% - Demo phần cài đặt, chức cách giải bất đồng Tổng hợp báo cáo thuyết trình I Định nghĩa, lịch sử VCS: 1) Định nghĩa: Version Control System (VCS) dịch hệ thống quản lý phiên chương trình VCS hệ thống hỗ trợ lưu lại lịch sử thay đổi source code, thay đổi lưu lại thành version Vì lưu lại version nên giúp việc quản lý code khôi phục code trở nên dễ dàng Và giúp nhiều q trình làm việc nhóm 2) Lợi ích: - Lưu lại lịch sử version thay đổi dự án Giúp xem lại thay đổi khôi phục (revert) lại sau - Việc chia sẻ code trở nên dễ dàng hơn, lập trình viên để public cho ai, private cho số người có thẩm quyền truy cập lấy code 3) VCS tập trung Đặc điểm dạng hệ thống làm việc theo mơ hình client – server server (kho mã nguồn) đặt nơi cho phép client kết nối đến Ưu điểm: - Tổ chức, lưu trữ phiên hiệu - Chia sẻ, truy xuất phiên cá nhân khác dễ dàng Nhược điểm: - Không thể truy xuất sở liệu máy chủ bị sập hư hỏng - Không thể khôi phục liệu tất liệu máy chủ II SVN ? SVN ( tên đầy đủ Subversion), phần mềm mã nguồn mở dùng để quản lý kiểm tra phiên mã nguồn khác trình phát triển phần mềm, công ty CollabNet giới thiệu vào năm 2000 Subversion có Repository đóng vai trị làm server chứa liệu, cung cấp giao thức cho phía client sử dụng giao thức tương tự Client sử dụng giao diện GUI hay CLI tùy ý, thông qua thư viện Subversion để gửi nhận liệu.Git thường hoạt động gắn với Local Repository Remote Repository: Cấu trúc Subversion thường chia thành folder chính, dĩ nhiên ta thêm bớt tùy ý hầu hết project lớn dùng cấu trúc này: Trunk: chứa code theo nghĩa đen, thường code dang dở, trình phát triển dự án Tags: thường chứa snapshot cần release cho dự án Lấy ví dụ, Project A release version 1.0, tồn code trunk tạo thành tag 1.0 thời điểm đó, thế, cần build deploy hay review lại phiên 1.0 project, ta cần lấy tag 1.0 xong, tương tự với tag khác Branches: tên gọi, chứa nhánh phát triển dự án Project A song song phát triển tính X tính Y mà khơng ảnh hưởng đến nhau, ta gọi branch SVN, cần gộp lại cho official release, branch gộp lại - - - III Lợi ích subversion : Subversion cung cấp chức để thành viên nhóm chỉnh sửa nội dung file cách an tồn, đơn giản nhanh chóng SVN có khả thay hệ thống quản lý phiên CVS cũ (tồn nhiều nhược điểm) SVN quản lý hệ thống phiên nào, coi hệ thống quản lý source code tập trung, mạnh mẽ, linh hoạt hữu dụng SVN quản lý thư mục tập tin theo thời gian Nó giống hệ thống file server mà máy khách download file cách bình thường Đặc biệt, SVN có khả lưu lại tất thay đổi hệ thống file (ai thay đổi, thay đổi lúc nào, thay đổi gì) SVN cho phép khơi phục lại version cũ cách nhanh chóng xác Do đó, làm việc nhóm an tồn hiệu Máy chủ máy khách chạy SVN, có nhiệm vụ ghi lại lịch sử dự án SVN hỗ trợ tốt giao thức để kết nối máy chủ máy khách Việc cho phép máy chủ hỗ trợ giao thức tùy thuộc vào cấu hình So sánh Subversion tool khác Subversion Là hệ thống quản lý source code tập trung (Centralized) CVS Quản lý source code tập trung (Centralized) Git Là phương tiện quản lý phiên theo hướng phân tán (Distributed) Các commit roll- Khơng thể roll-back back lại trạng thái trước Các commit rollback trạng thái trước Các tập tin đổi tên Tập tin bị đổi tên di loại bỏ mang theo đầy chuyển history trước đủ history meta-data trước Commit update trực tiếp từ máy họ mà thông qua Repository gốc sever mang theo history Có khả đẩy thay đổi đến Repository cha Chỉ đẩy thay đổi lên Respository Tất thao tác làm việc việc với Git máy local, local repository Có thể thay đổi push (Giao thức sử dụng)Sử dụng SSH, ngồi cịn bổ sung WebDAV , giao thức dựa HTTP HTTPS cung cấp cho người dùng tuỳ chọn để kết nối với SVN qua web Làm việc mạng LAN hay Internet Sử dụng giao thức SSH để truyền tải Sử dụng SSH để truyền tải (SSH giao thức mạng) Làm việc mạng LAN hay internet Làm việc mạng LAN hay Internet/ Nếu server down thành viên khác khơng thể update thay đổi từ sever-> khả làm việc offline không cao Nếu sever down thành viên khác khơng thể update thay đổi từ server -> khả làm việc offline khơng cao Có khả làm việc offline (server down), coppy thành viên full coppy từ repository góoc máy thành viên (update trực tiếp không cần server) Thao tác GUI hay Command Thao tác GUI hay Command IV Thao tác GUI Chức SVN Tiến trình Checkout SVN Tiến trình checkout sử dụng để tạo làm việc từ repository Bản làm việc khu vực làm việc riêng nơi mà nhà lập trình thực thay đổi họ, sau đó, đệ trình thay đổi tới repository Ký thác thay đổi (commit) SVN Tiến trình commit sử dụng để áp dụng thay đổi từ khu vực làm việc tới repository Tiến trình chỉnh sửa repository nhà lập trình khác quan sát thay đổi cách cập nhật khu vực làm việc Trước commit, phải thêm file/thư mục tới q trình diễn liệt kê thay đổi Đây nơi mà thay đổi chờ để commit Với commit, thường cung cấp thơng báo log để giải thích gây thay đổi Thơng báo log trở thành phần lịch sử repository Tiến trình Update SVN Như tên gọi đề cập, tiến trình update sử dụng để cập nhật làm việc Tiến trình đồng khu vực làm việc với repository Khi repository chia sẻ tất thành viên team commit thay đổi họ làm việc trở lên cũ Bây giả sử Tom Jerry hai nhà lập trình làm việc dự án Cả hai kiểm tra phiên từ repository bắt đầu làm việc Tại thời điểm này, công việc đồng hoàn toàn với repository Jerry hoàn thành công việc hiệu commit thay đổi thực tới repository Bây khu vực làm việc Tom chưa cập nhật Tiến trình update kéo thay đổi Jerry từ repository cập nhật khu vực làm việc Tom Sửa lỗi SVN Chúng tơi giả sử gây thay đổi tới khu vực làm việc anh ta, muốn dỡ bỏ thay đổi Trong tình này, tiến trình revert giúp làm điều Tiến trình revert trả lại chỉnh sửa mà thực tới khu vực làm việc Nó để trả lại nhiều file/thư mục Nó trả lại toàn khu vực làm việc Trong trường hợp này, tiến trình revert phá hủy trình diễn liệt kê thay đổi mang khu vực làm việc trở lại trạng thái ban đầu Giải xung đột SVN: Các xung đột xảy thời gian việc sáp nhập Tiến trình merge tự động thực thứ mà thực theo cách an toàn Mọi thứ khác cân nhắc xung đột Ví dụ, tệp hello.c chỉnh sửa nhánh bị xóa nhánh khác Trong tình cần người đưa định Tiến trình resolve sử dụng để giúp người sử dụng tính tốn thứ để thông báo cho VCS cách giải xung đột V DEMO Download Tortoise SVN http://tortoisesvn.net/downloads.html Tùy thuộc vào hệ điều hành bạn 64 hay 32 bit để download cho Cài đặt Tortoise SVN Dữ liệu import (nhập khẩu) vào SVN Repository Nhìn Visual SVN: 3.2) Checkout Tất thành viên nhóm checkout liệu từ SVN Repository máy tính mình, bao gồm người import liệu ban đầu vào SVN Repository Tại máy tính thành viên, tạo thư mục rỗng đó, checkout liệu từ SVN Repository Thư mục thư mục làm việc thành viên máy tính Dữ liệu lấy 3.3) Commit Update Checkout hành động lấy toàn liệu chia sẻ Repository xuống máy địa phương lần Sau liệu sửa đổi địa phương Việc đưa liệu thay đổi lên Repository gọi Commit Và việc cập nhập liệu thay đổi hành động Update Bây sửa (hoặc thêm) file thư mục Commit lên Ví dụ thay đổi file TeamNote.txt lưu lại, biểu tượng SVN file thay đổi, thơng báo file bị sửa đổi Tiếp theo tạo file TeamTodo.txt Biểu tượng file tạo có dấu ?, thơng báo file mới, chưa quản lý SVN Thư mục SVN chứa file có liệu bị sửa đổi thay đổi biểu tượng Để Commit liệu lên SVN Repository, nhấn phải chuột vào file thư mục cần Commit, chọn SVN Commit Check chọn file cần commit danh sách Mặc định Tortoise SVN tự động check vào file có sửa đổi 3.4) Update: Thành viên khác nhóm Update (cập nhập) liệu từ SVN Repository Các chức khác Tortoise SVN Trong Tortoise SVN, chức thường dùng Commit Update Ngồi cịn nhiều chức khác 3.5) Add to Ignore list Trường hợp có thư mục file muốn SVN bỏ qua, không đưa lên SVN Repository Có thể sử dụng chức : Nhấn phải chuột vào file thư mục muốn SVN bỏ qua Chọn: Sau Commit thư mục cha: Đơi nhận thông báo lỗi "Out of date" Trong trường hợp phải sử dụng chức Update trước Commit lên Tortoise SVN gợi ý Update trước Sau bạn tiếp tục Commit 3.6) Revert Chức Revert sử dụng để trả lại liệu ban đầu 3.6) Get Lock & Release Lock Get Lock: Release Lock: