Presentation is loading. Please wait.

Presentation is loading. Please wait.

Danh sách thành viên: Nguyễn Khắc Trọng Phạm Duy Sơn Dương Văn Tuyến.

Similar presentations


Presentation on theme: "Danh sách thành viên: Nguyễn Khắc Trọng Phạm Duy Sơn Dương Văn Tuyến."— Presentation transcript:

1 Danh sách thành viên: Nguyễn Khắc Trọng Phạm Duy Sơn Dương Văn Tuyến

2 Nội dung đ ề tài Giới thiệu về Subversion. So sánh Subversion với các hệ thống quản lý phiên bản khác nh ư CVS, GIT, … Các Subversion Server và Subversion Client. Giới thiệu về công cụ Subversive trong phần mềm mã nguồn mở Eclipse. Ứng dụng Subversion vào quản lý một dự án phần mềm. Tổng kết, đ ánh giá, triển vọng và h ư ớng phát triển của Subversion và công cụ Subsersive.

3 Giới thiệu Subversion Subversion (viết tắt 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 (http://subversion.tigris.org). Đâ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 trên cùng 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.

4 Subversion đư ợc thiết kế với mục đ ích thay thế hệ thống quản lý phiên bản Concurrent Versioning System (CVS) đ ã cũ và có nhiều nh ư ợc đ iểm. Subversion có thể đư ợc sử dụng đ ể quản lý bất cứ hệ thống phiên bản nào. Subversion là hệ thống quản lý source code tập trung (Centralized). Subversion là hệ thống quản lý phiên bản mạnh mẽ, hữu dụng, và linh hoạt. Subversion quản lý tập tin và th ư mục theo thời gian.

5

6 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 hiệu quả và an toàn h ơ n rất nhiều. Thông th ư ờng, client và server kết nối thông qua mạng LAN hoặc Internet. Client và server có thể cùng chạy trên một máy nếu SVN có nhiệm vụ theo vết lịch sử của dự án do các nhà phát triển phần mềm phát triển trong nội bộ.

7 Subversion hỗ trợ khá nhiều giao thức đ ể kết nối giữa client và server. Ví dụ bạn có thể dùng các giao thức của ứng dụng web nh ư http:// hoặc https://, hay các giao thức của svn nh ư svn:// hoặc svn+ssh://, hoặc nếu phần mềm client và server cài chung trên 1 máy thì có thể dùng file://. Việc cho phép server hỗ trợ giao thức nào phụ thuộc vào lúc cấu hình.

8 Một số khái niệm c ơ bản Subversion dựa trên mô hình quản lí tập trung kiểu client/server. Mô hình này có 2 khái niệm c ơ bản: Repository và Working Copies. - Repository đ ặt ở server là n ơ i tập trung quản lý các phiên bản của dự án phần mềm.  Các th ư mục và tập tin của dự án đư ợc đ ặt vào trong kho l ư u trữ trung tâm này. Nó giống nh ư một máy chủ tập tin thông th ư ờng, ngoại trừ việc nó ghi lại đư ợc mọi thông tin thay đ ổi theo thời gian của hệ thống tập tin và th ư mục.

9

10  Repository cho phép khôi phục lại phiên bản cũ của dữ liệu, hoặc kiểm tra lịch sử của dữ liệu thay đ ổi nh ư thế nào. - Working Copies đ ặt ở client là các phiên bản làm việc copy của các tập tin trong repository. Repository thì chỉ có một, trong khi working copies có thể có nhiều (t ươ ng ứng với repository đ ó).

11 Mô hình Client/Server

12 Checkout: là khái niệm dùng đ ể chỉ một thành viên của dự án ở client sẽ lấy một phiên bản copy của các file thuộc project trên server về máy cục bộ. Commit: thành viên của dự án đư a các thay đ ổi trên các file của project tại máy client lên server. Update: khi một thành viên muốn cập nhật những thay đ ổi của các file thuộc thành viên khác trên Repository về máy cục bộ của mình. Merge: nhiều thành viên cùng tiến hành cập nhật trên một tập tin.

13 Revision Để quản lí các phiên bản khác nhau, Subversion đư a ra khái niệm revision. Nói một cách đơ n giản, đ ể hệ thống có thể quản lý đư ợc sự thay đ ổi của các tập tin, mỗi tập tin sẽ có dạng Name-Revision. Ví dụ: cnpm.doc-rev1 và cnpm.doc-rev2 là 2 revision của tập tin cnpm.doc.

14 Revision Cứ mỗi lần commit, toàn bộ Repository sẽ có một con số revision mới (mỗi con số này là duy nhất và số revision sau lớn h ơ n revision tr ư ớc). Dù chỉ thay đ ổi một tập tin sau khi commit, nh ư ng toàn bộ hệ thống tập tin của Repository sẽ có cũng một con số revision.

15 Minh họa về các revision của một Repository

16 So sánh Subversion với các hệ thống quản lý phiên bản khác 1. CVS (Concurrent Versions System) CVS (Concurrent Versions System) t ươ ng tự nh ư SVN là mô hình mô hình quản lý source code tập trung (Centralized). CVS ra đ ời n ă m 1986, là hệ thống quản lý phiên bản đ ầu tiên, sau đ ó đ ến sự bùng nổ của SVN. SVN bản chất vẫn là CVS đư ợc cải tiến, nh ư ng có nhiều công cụ hỗ trợ h ơ n. Cả CVS và SVN đ ều có t ư t ư ởng chung về cách làm việc chung giữa các thành viên theo mô hình (quản lý source code tập trung) nh ư sau:

17

18 Atomic Commit : có lẽ sự cải thiện lớn nhất của SVN từ CVS là bổ sung việc commit của các thành viên được gọi là Atomic Commit. Atomic Commit cho phép mỗi commit từ thành viên được upate đầy đủ hoặc không có gì cả, điều này rất có ý nghĩa khi máy chủ bị treo trong lúc commit. Với CVS khi máy chủ bị treo hay kết nối bị trục trặc thì việc commit có thể bị dở dang, không đầy đủ. Với SVN, các commit có thể được roll-back lại trạng thái trước đó, trong khi CVS thì không thể.

19 SVN tiện lợi hơn CVS trong việc đổi tên và di chuyển các tập tin, thư mục. Với SVN các tập tin được đổi tên hoặc loại bỏ vẫn mang theo đầy đủ history và meta- data của nó trước đó. Trong khi đó với CVS thì tập tin bị đổi tên hoặc di chuyển sẽ bị mất history trước đó. CVS cũng không thể đẩy bất cứ những thay đổi mới đến Repository cha mà chỉ có thể đẩy lên Repository con của nó, trong khi một số công cụ SVN có khả năng làm việc này.

20 Cả hai sử dụng giao thức độc quyền qua một kết nối SSH để đảm bảo an toàn thông tin đang được truyền đi trên mạng. SVN bổ sung WebDAV DeltaV, giao thức này được dựa trên HTTP và HTTPS cung cấp cho người dùng một tùy chọn để kết nối với các SVN qua web. Về mặt cơ bản cả 2 đều hoạt động như nhau: tất cả source code sẽ được đặt trên 1 server trung tâm, mọi thành viên đều làm việc trên source code đó.

21 So sánh Subversion với các ph ươ ng pháp quản lý phiên bản khác 2. GIT  GIT là một ph ươ ng pháp quản lý phiên bản theo h ư ớng phân tán (Distributed), hoàn toàn trái ng ư ợc với ph ươ ng pháp quản lý tập trung của SVN và CVS.  Dự án phần mềm sử dụng GIT đ ể quản lý không cần có chung một Repository l ư u trữ. Mà mỗi thành viên của dự án sẽ có một Repository ở máy local của họ.

22

23 Tất cả thao tác làm việc với Git đều ở trên máy của local, local repository, khi quyết định đưa những thay đổi đó lên server ta chỉ cần một thao tác “push” nó lên server. Các thành viên trong dự án vẫn có thể share các thay đổi cho nhau, bằng cách commit hoặc update trực tiếp từ máy của họ mà không phải thông qua repository gốc trên server (thông qua share ssh cho nhau). Và dĩ nhiên là mọi thao tác đều mang theo thông tin history với Git. Git được đánh giá là khó sử dụng hơn CVS và SVN.

24

25 3. Các hệ thống quản lý phiên bản khác Mercurial: là hệ thống quản lý phiên bản mã nguồn mở, giống nh ư GIT, nh ư ng đơ n giản h ơ n nhiều. Mercurial đư ợc thiết kế đ ể sử dụng cho các dự án lớn. Bazzar: là hệ thống quản lý phiên bản phân tán, nh ư GIT và Mercurial, đư ợc đ ánh giá là khá thân thiện với ng ư ời dùng, có khả n ă ng quản lý bất kỳ dự án nào. LibreSource: là một Web Portal dùng đ ể quản lý nhiều dự án cộng tác với nhau, đư ợc thiết kế cho những ng ư ời dùng không cần có nhiều hiểu biết về kỹ thuật, công nghệ. Monotone: là một nhánh nhỏ của hệ thống quản lý phân tán, ít phổ biến h ơ n các hệ thống khác.

26 SVN Server và SVN Client 1. SVN Server Các SVN Server có thể đư ợc đ ặt trên máy local hoặc các máy chủ trên Internet. Có khá nhiều phần mềm và dịch vụ miễn phí cho SVN Server. Phần mềm: CollabNet Subversion Server, VisualSVN Server, … Dịch vụ: SourceForge.net, Google Code, BeanstalkSourceForge.netGoogle CodeBeanstalk

27

28

29 Các SVN Server và SVN Client 2. SVN Client Các phần mềm SVN client có thể chia làm 3 loại chính: stand-alone clients, desktop-integrated clients và IDE plug-in clients. Stand-alone clients là loại đ ứng nh ư một ứng dụng đ ộc lập, nghĩa là không phụ thuộc vào phần mềm nào khác.

30 Desktop-intergrated clients là loại đư ợc tích hợp vào các phần mềm desktop. Ví dụ nh ư TortoiseSVN tích hợp vào Windows File Explorer, mỗi khi bạn click chuột phải trong màn hình của Windows File Explorer sẽ thấy các chức n ă ng của SVN client. IDE plug-in clients là loại tích hợp vào các môi tr ư ờng lập trình (IDE). Ví dụ Subversive đư ợc tích hợp vào Eclipse.

31 TortoiseSVN

32 Subversive

33 Danh sách một số SVN Client: Subversive: một dạng plug-in trong Eclipse. AnkhSVN: là một phần mềm phụ, bổ sung khả n ă ng truy cập Subversion cho môi tr ư ờng lập trình Visual Studio.NET. Insurrection: giao diện Web cho Subversion. JSVN: ch ươ ng trình khách viết bằng Java. svnX: ch ươ ng trình khách cho Mac OS. TortoiseSVN: là một phần mềm làm việc trên nền Windows Explorer. WebSVN: là một giao diện Web cho Subversion, viết bằng PHP…

34 Giới thiệu công cụ Subversive  Subversive là một dạng plug-in của Eclipse. Mặc đ ịnh Eclipse không tích hợp sẵn Subversive, vì vậy đ ể sử dụng Subversive bạn phải cài đ ặt thêm plug-in này vào Eclipse.  Cài đ ặt Subversive bằng chức n ă ng update của Eclipse hoặc có thể download file nén chứa Subversive sau đ ó add vào Eclipse.

35

36

37 Tổng kết - đ ánh giá Subversion là hệ thống quản lý phiên bản đư ợc sử dụng phổ biến hiện nay. Những lợi ích mà Subversion mang lại là rất to lớn: giúp thúc đ ẩy tiến đ ộ xây dựng và phát triển dự án, phát huy khả n ă ng làm việc theo nhóm, dễ dàng sao l ư u và phục hồi các phiên bản của dự án, đ ảm bảo an toàn thông tin dữ liệu. Subversive là một plug-in của Eclipse – một phần mềm mã nguồn mở hỗ trợ rất nhiều ngôn ngữ khác nhau. Sử dụng Eclipse các nhà phát triển có thể tích hợp thêm nhiều công cụ khác đ ể tạo nên một bộ công cụ hoàn chỉnh mà không cần dùng đ ến bất cứ một môi tr ư ờng phát triển riêng nào khác.

38 Eclipse đư ợc sự hỗ trợ đ ông đ ảo của cộng đ ồng mã nguồn mở, giúp nó luôn tục đư ợc cập nhật những công nghệ mới, có thể chạy trên bất kỳ môi tr ư ờng nào, có tính mở rộng và tùy biến rất cao. Vì thế, Subversive cũng đư ợc thừa h ư ởng những lợi thế đ ó. Subversive hỗ trợ đ ầy đ ủ các giao thức và các tính n ă ng cho Subversion. Công cụ này sẽ ngày càng đư ợc cải tiến đ ể đ áp ứng ngày càng tốt h ơ n nữa yêu cầu quản lý phiên bản của các dự án phần mềm.


Download ppt "Danh sách thành viên: Nguyễn Khắc Trọng Phạm Duy Sơn Dương Văn Tuyến."

Similar presentations


Ads by Google