Hệ thống quản lý phiên bản theo mô hình phân tán pptx

49 766 9
Hệ thống quản lý phiên bản theo mô hình phân tán pptx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Hệ Thống Quản Lý Phiên Bản Theo Mô Hình Phân Tán (Distributed Version Control System) GVHD :NGUYỄN MINH ĐỨC SINH VIÊN : NGUYỄN NGỌC LAN ĐÀI TRẦN TIẾN LONG NGUYỄN ĐỨC ANH  Tổng quan về hệ thống quản lý phiên bản a.Tại sảo phải có các hệ thống quản lý phiên bản (Version control system) Trong công nghệ phần mềm các lập trình viên ,nhóm làm việc với nhiều dự án ,mỗi dự án lại có nhiều phiên bản khác nhau , trong mỗi phiên bản việc liên tục chỉnh sửa mã nguồn là điều không chánh khỏi .Khi các dự án và các phiên bản đã làm việc có số lượng lớn thì việc quản lý các phiên bản phải liên tục sử đổi và dự án trở nên phức tạp VD: Mỗi khi cần lấy lại một số mã nguồn cũ để phát triển thêm lập trình viện lại phải nhớ vị trí nơi lưu trữ bản sao , hoặc khi cần một đoạn mã nguồn trước đó hiện tại đã bị chỉnh sửa thì lập trình viên lại phải viết lại , việc chia sẻ,phân chia mã nguồn giữa các thành viên mất thời gian … Chính vì vậy cần phải có một hệ thống quản lý phiên bản (VCS - version control system), - Nó lưu giữ các phiên bản của mã nguồn của sản phẩm phần mềm một cách ngăn nắp,trình tự bên trong một thư mục được gọi là Repository  Theo dõi ,sao lưu,đồng bộ hóa các thay đổi ,giúp các lập trình viên có thể dễ dàng lấy lại phiên bản mong muốn  Cho phép nhiều developer cộng tác với nhau để cùng phát triển dự án http://vi. wikipedia.org/wiki/h ệ_ thống _ quản _ lý _ phiên _ bản ) b. Một số khái niệm sử dụng trong các hệ thống quản lý phiên bản   - Repository:Thư mục lưu trữ tất cả các phiên bản của tất cả các file và những thay đổi của chúng ,nó có thể là nơi chứa các file mã nguồn , hỉnh ảnh ,âm thanh … (Repository của Egit – một plug in của Eclipse) - Phiên bản: Mỗi tập tin có thể có nhiều phiên bản (version). Các phiên bản được đánh số khác nhau. Mỗi lần chúng ta hiệu chỉnh nội dung tập tin và cập nhật vào nơi chứa của VCS, phiên bản sẽ được cập nhật. Một số VCS sử dụng hệ thống phiên bản 1, 2, 3, trong khi có một số khác sử dụng hệ thống 1.0, 1.1, 1.2, Các VCS thường lưu phiên bản cuối cùng và các thay đổi của các phiên bản trước so với phiên bản cuối đó. Các số phiên bản (như 1.0, 1.1, hay 1.2, ) còn được gọi là revision. Đi đôi với số phiên bản, VCS lưu thêm các thông tin về ngày giờ cập nhật, người cập nhật và một số ghi chú nếu có. Một vấn đề nhỏ trong cách đánh số này là làm sao các thành viên trong nhóm biết được các phiên bản của dự án. Số phiên bản trong dự án sẽ thay đổi khi phiên bản của tập tin thay đổi. Các VCS do đó sử dụng thêm một cách ghi nhận phiên bản là đánh nhãn (labeling, tag). Khi đó, cho dù số phiên bản của dự án thay đổi, nhãn của dự án vẫn không đổi. - Branch (phân nhánh) : Khi làm việc nhóm, mọi thành viên đều có một phần mã chung, gọi là nhánh chính (mainline). Và các thành viên đều làm việc với một phần của nhánh chính. Khi có yêu cầu tách một phần mã chung đó, ví dụ như để tạo một phiên bản để thử nghiệm, các thành viên của nhóm phân phối thử nghiệm đó cần mã độc lập với nhánh chính. Giải pháp là dùng phân nhánh. Chia nhánh (branching) là một cơ chế của hệ thống quản lý phiên bản cho phép tách một phần của dự án ra riêng. Phần này sẽ hoạt động độc lập với dự án chung. Khi đó, việc đánh phiên bản cũng thay đổi. Ví dụ: nếu một tập tin A trong nhánh chính có số phiên bản là 1.14 và một nhánh mới được tạo ra, A sẽ có số phiên bản trong nhánh là 1.14.1.1. Việc hiệu chỉnh tập tin đó trong nhánh chính sẽ cho chỉ số phiên bản mới trong nhánh chính là 1.15 tuy nhiên nếu hiệu chỉnh tập tin đó trong nhánh thì nó có số phiên bản mới là 1.14.1.2 - Check out: Download một hoặc nhiều file từ Repository về thư Repository client ở máy mình.Quá trình này bắt đầu đưa một phiên bản của project từ trên Server để làm việc Vi dụ về quá trình Check out sử sụng Subversion một hệ thống quản lý phiên bản [...]... http://code.google.com/ Google code đã sử dụng 2 hệ thống quản lý để người dùng lựa chọn là Subversion của hệ thống tập trung và Mercurial của hệ thống phân tán Git cũng là một DVCs và hiện tại Git được rất nhiều các cộng đồng lập trình viên thế giới sử dụng https://qt.gitorious.org/ (Đây cũng là một mạng xã hội lập cho trình viên sử dụng Git để quản lý các project) Các Repository của Linux Kernel... https://www.ohloh.net/repositories/compare Đây là bản đồ thống kế các công cụ được sử dụng để quản lý mã nguồn các project trên trang ohloh.net Cho thấy các hệ thống quản lý phân tán (Git + mercurial + Bazaar ) mặc dù ra sau nhưng đang ngày càng được quan tâm và sử dụng, đặc biệt là Git Ảnh chụp số người tham gia github.com (một mạng xã hội cho lập trình viên sử dụng Git để quản lý mã nguồn) và các Repository được... chúng được đồng bộ với Repository trung tâm thông qua push/pull.Nhưng trong mô hình phân phối bất cứ ai cũng có thể là một máy chủ nên có thể Push/pull với nhau http://docs.joomla.org/Dvcs b Một số Workflow Của hệ thống phân tán (Theo ebook: Pro Git – Scoot chacon)  Centralized Workflow: Trong hệ thống tập trung ,có chung một mô hình hợp tác duy nhất Centralized Workflow “Share repository” là một Repo... các công ty phần mềm hiện đang sử dụng github để quản lý mã nguồn Một số Git hosting (Nơi lưu trữ source code hỗ trợ quản lý bằng Git) https://git.wiki.kernel.org/index.php/GitHosting 3 Kết quả nghiên cứu của một số nhóm trước đó Các nghiên cứu của một số nhóm trước đó đã giới thiệu về hệ thống phân bố qua qua việc tìm hiểu về Git một VCS sử dụng hệ thống phân bố và Github (mạng xã hội cho lập trình viên)... các dự án rất lớn hoặc các môi trường phân cấp cao vì nó cho phép các trưởng dự án (dictator) ủy nhiệm nhiều công việc và thu thập một tập lớn các mã tại nhiều điểm trước khi tích hợp chúng a c So sánh giữa hệ thống phân tán và hệ thống tập trung CVCS Mục đích (http://stackoverflow.co m/questions/111031/ comparison-betweencentralized-and-distributedversion-control-systems) Mô hình làm việc (http://namheo.com/blog/...- Mô hình phân tán : Distributed version control system (DVCs) Các hệ thống sử dụng mô hình này hiện nay là Git, Mercurial, Bazaar,Darcs Mỗi thành viên sẽ có một repository ở local và tất cả các thao tác như commit, add… đều làm việc trực tiếp với nó giống như bản nó vừa là client vừa là một server.Các thành viên trong local có thể... triển Dung lượng Repository ở client Nhỏ vì client khi làm việc chỉ lấy về một phiên bản từ server nếu muốn phiên bản khác họ có thể cập nhật ,nên cũng chính vì thế mà khởi đầu nó nhanh hơn DVCS Cơ chế khóa Là một phần của hầu hết CVCS d Repository của DVCS là một bản sao c Repository trên server ,nó chúa tất cả cá phiên bản và lịch sử làm việc nên nó sẽ tốn nhiều dung lượng nếu developer làm việc với... thiệu về Git Git - Hệ thống quản lý source phân tán (DVCS) được dùng phổ biến nhất trong số các DVCS hiện có.Một trong những lợi thế của Git đó là nó được xây dựng để làm việc trên Linux kernel, nghĩa là nó được dùng để giải quyết hiệu quả với các Repository lớn Thêm vào đó Git được viết bằng C, giảm thời gian chạy so với các chương trình khác viết bằng ngôn ngữ bậc cao hơn.Một lý do cho tốc độ quá... Github (mạng xã hội cho lập trình viên) nhưng hầu hết chỉ ở mức ngắn gọn chưa khái quát hết Có thể xem bài viết được đánh giá cao tại http://namheo.com/blog/share/phần-i-git -hệ- thống- quản- ly-source-phan-tan 4 Nội dung thực hiện a Mô hình của DVCS: (ebook Pro Git – Scott Chacon –Publishes:APRESS) DVCS cũng là một server ,có một Repository để mọi người gửi những thay đổi lên, mỗi client có một Repo nằm... một bản copy mới nhất từ source code trên server đó để làm việc Và khi ta muốn apply thay đổi của ta từ local ta sẽ send yêu cầu đó lên server Đó chính là nguyên tắc DVCS Hệ thống được thiết kế với mục đích là một Repo tốt tương đương với bấ kì Repo khác,và merge từ một repo đến repo kahcs là chỉ khác hình thức giao tiếp.Bất kì giá trị ngữ nghĩa đán tin cậy được áp đặt từ bên ngoài chứ không phải bản . cho mô hình phân phối (DVCS)  Pull: Cập nhật những thay đổi của Repository ở Server .Phương thức này chỉ sử dụng cho mô hình phân phối (DVCS). c. Các loại mô hình của hệ thống quản lý phiên bản. . ệ_ thống _ quản _ lý _ phiên _ bản ) b. Một số khái niệm sử dụng trong các hệ thống quản lý phiên bản   - Repository:Thư mục lưu trữ tất cả các phiên bản. Hệ Thống Quản Lý Phiên Bản Theo Mô Hình Phân Tán (Distributed Version Control System) GVHD :NGUYỄN MINH ĐỨC SINH VIÊN : NGUYỄN NGỌC LAN ĐÀI TRẦN TIẾN LONG NGUYỄN ĐỨC ANH  Tổng quan về hệ

Ngày đăng: 26/07/2014, 04:20

Từ khóa liên quan

Mục lục

  • Centralized Workflow:

  • Integration-Manager Workflow:

  • Vì DVCs cho phép có nhiều Repository trung tâm,nên nó có thể có một Workflow mà mỗi developer truy cập và gửi những thay đổi lên Repo public và đọc từ những Repo khác .Kịch bản này thường bao gồm một Repo chuẩn đại diện cho dự án .Để một developer đóng góp vào dự án thì developer tạo cho riêng mình một bản sao dự ánvà đưa (push) những thay đổi lên.Sau đó có thể gửi những yêu cầu cập nhật những thay đổi đó vào dự án chính và nếu được dự án chính sẽ cập nhật (pull) những thay đổi đó.Và người kiểm soát dự án chính có thể test những thay đổi và gộp (merge) những thay đổi đó ở trong nhánh làm việc của họ ở máy của họ và push trở lại Repo chính.

  • (Ebook: “Pro git”,tác giả : scott chacon,NXB:APPRES )

  • Kịch bản:

  • 1. Người chủ dự án chính Push những thay đổi vào Public Repository của họ

  • http://Github.com

  • 2. Người đóng góp sao (Clone) sao Publick Repository đó và phát triển thêm

  • 3. Người đóng góp sẽ Push những thay đổi đó lên copy Public Repository

  • 4. Người đóng góp sẽ gửi một mail hói họ có muốn update thêm những thay đổi mà họ tạo ra không

  • 5. Người chủ dự án Add Repo của người đóng góp giống như họ remote Repo đó từ xa và gộp (Merge) nội dung thay đổi vào nhánh làm việc chính

  • 6. Chủ dự án Push những thay đổi đó lên nhánh chính

  • Đây là Workflow phổ biến với những trang như github.com

  • Một trong những ưu điểm chính của phương pháp này là bạn có thể tiếp tục làm việc và người chủ của dự án chính có thể cập nhật những thay đổi trong của bạn tại bất kì thời điểm nào .Người đóng góp không phải đợi project tích hợp những thay đổi của họ,mỗi bên có thể làm việc với nhịp độ của riêng họ

  • Dictator and Lieutenants Workflow

  • (Ebook: “Pro git”,tác giả : scott chacon,NXB:APPRES )

  • Đây là một biến thể của Integration Manager Workflow .Nó thường được sử dụng bời các dự án lớn với hàng trăng cộng tác viên;một ví dụ nổi tiếng là Linux Kernel.Các integration managers được phụ trách phần nhất định của Repository, họ được gọi là “lieutenants”- phụ tá.Tất cả các lieutenants có một integration manager được gọi như nhà độc tài (dictator)nhân từ. Các repo của các dictator đóng vai trò như Repo tham khảo mà từ đó tất cả các cộng tác viên cần để cập nhật (pull)

Tài liệu cùng người dùng

Tài liệu liên quan