Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 20 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
20
Dung lượng
2,62 MB
Nội dung
Nội Dung Seminar : SỬ DỤNG SUBVERSION TRONG LẬP TRÌNH NHÓM I. Giới thiệu về Subversion : Subversion là một phần mềm mã nguồn mở dùng để quản lý và kiểm tra các phiên bản mã nguồn (hay còn gọi là version -version control system - VCS ) khác nhau trong quá trình phát triển phần mềm. Subversion đượ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. Subversion cũng còn được gọi là svn. Svn là lệnh dùng để thực hiện các chức năng Subversion trong môi trường thi hành lệnh trên các pc. Subversion được thiết kế với mục đích thay thế phần mềm 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. Một số các lập trình viên chính cho dự án CVS hiện đang tham gia phát triển Subversion. Subversion rất phổ biến trong giới mã nguồn mỡ và được dùng để quản lý mã nguồn cho nhiều ứng dụng tự do như: Apache Software Foundation, KDE, GNOME, Free Pascal, FreeBSD, GCC, Python, Django, Ruby, và Mono. SourceForge.net và Tigris.org, nơi lưu trữ miễn phí chuyên nghiệp dành cho các ứng dụng tự do, đều có hỗ trợ Subversion cho các ứng dụng được lưu trữ trong máy chủ. Ngoài ra Google Code và BountySource chỉ sử dụng Subversion để quản lý các phiên bản mã nguồn. II. Đặc đểm của Subversion : - Subversion được phát hành với giấy phép Apache License. Do đó Subversion là một phần mềm nguồn mở và tự do. - Subversion là hệ thống quản lý source code tập trung (Centralized). - Subversion quản lý tập tin và thư mục theo thời gian - 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ộ. - Subversion hỗ trợ khá nhiều giao thức để kết nối giữa client và server. o 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://. o Việc cho phép server hỗ trợ giao thức nào phụ thuộc vào lúc cấu hình. III. 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. 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 đó). - 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. - 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. 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. IV. 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: - 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ể. - 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. 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ọ. - 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. 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. V. Mô hình hoạt động của Subversion : Hệ thống Subversion được chia thành 2 thành phần : 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, Beanstalk, codeplex,… 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. - 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. 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… VI. Hướng dẫn cài đặt : a. Cài đặt trên SVN Server : Ở đây chúng ta dung dịch vụ của google code. Google cho chúng ta 4GB free để lưu trữ code project Các bạn sẽ làm them các hình hướng dẫn sau : - Đây là trang chính của google code (http://code.google.com) Mục 1 – My favorites : là nơi theo dõi cái projects mà bạn đang tham gia Mục 2 – Project Hosting : nếu muốn chọn tạo project mới thì bạn click mouse vào đây Sauk hi bạn chọn Project Hosting thì sẽ đến màng hình này, tại đây bạn sẽ chọn mục Project Hosting On Google Code Tiếp tục bạn sẽ click vào mục : Create a new project Bây giờ bạn sẽ tiến hành khai báo các thông tin cho project của mình, sau đó click vào mục Create project Đây là trang quản lý các thành viên tham gia vào project, bạn có thể them thành viên (add members) hay cài đặt các quyền truy cập của thành viên vào ptoject Còn đây là trang quản lý soure, chúng ta đang ở mục checkout, ở mục này bạn chú ý vào đoạn text https://oss-android.googlecode.com/svn/trunk/ bạn hãy copy lưu lại, chúng ta sẽ sử dụng nó trong phần cài đặt trên SVN client. Khi một thành viên tham gia vào project google sẽ cung cấp cho mỗi thành viên một password riêng để sử dụng trong lúc commit hay update. Để lấy password này bạn click vào mục google.com password Và đây là password mà google cung cấp cho bạn, hãy lưu trữ lại cẩn thận Hiện tại ta đang ở mục Browse. Mục này là mục quản lý các file của project mà ta commit lên Còn dây là mục Changes là mục theo dõi Revision của project cũng như lịch sử thay đỗi của project b. Cài đặt trên SVN Client Thì chúng ta sử dụng chương trình AnkhSvn đây là một plug-in cho visual studio hoàn toàn miễn phí. Các bạn có thể download trên mạng về sử dụng. Sau đây các bạn sẽ được hướng dẫn sử dụng Subversion căn bản Hiện tại chúng ta đang có một project được dung để làm việc theo nhóm. Và cần chia sẽ cho mọi người cùng nhau phát triển thì ta chọn mục Add Solution to Subversion hoặc Add Selected Project to Subvesion Sau đó sẽ xuất hiện màng hình này. Chúng ta sẽ sử dụng link mà google code cung cấp ở phần trên vào ô Repository. Sau đó click vào mục Subversion Repositories và đợi visual tải dữ liệu về. sau khi đó sẽ hiện lên hình cây thư mục như ở hình trên. Ta sẽ chọn nơi lưu project theo cây thư mục này. Từ nay trở về sau project của chúng ta sẽ được lưu trên google code giống như cây thư mục này Sau đó sẽ xuất hiện màng hình này. Nếu chúng ta cần ghi một messeng để log thì ghi vào. Không thì click ok! [...]... to lastest version Quá trình commit hay update sẽ được tự động thực hiện giống như quá trình Add Solution Sau đây, chúng ta sẽ tiến hành lấy một project có sẳn trên mạng về cho máy mình Quá trình được thực hiện như sau : Vào File Open Subversion Project Khi đó sẽ hiện màng hình này Bạn click vào button để add link của project (tương tự như link khi bạn sử dụng trong quá trình Add Solution) Khi... tải về máy sử dụng Sau khi chọn được project thì sẽ hiện ra màng hình này bạn sẽ chọn nơi lưu project của mình trên PC Và chương trình sẽ bắt đầu tự động update project về Đến đây là kết thúc quá trình update đầu tiên Và phần hướng dẫn cài đặt của mình cũng kết thúc tại đây! V 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. .. màng hình đăng nhập với user name : là tài khoản gmail của bạn sử dụng google code Còn password là password được lấy ở mục google.com password Và đây là những hình ảnh của lần commit đầu tiên sau khi bạn đăng nhập thành công Còn đây là menu Subversion khi bạn click chuột phải lên project Trên đây có tất cả các button chức năng của chương trình như : update, commit,… Khi bạn muốn commit thì chỉ cần click... í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 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 . Nội Dung Seminar : SỬ DỤNG SUBVERSION TRONG LẬP TRÌNH NHÓM I. Giới thiệu về Subversion : Subversion là một phần mềm mã nguồn mở dùng để quản lý và. điểm. Subversion có thể được sử dụng để quản lý bất cứ hệ thống phiên bản nào. Một số các lập trình viên chính cho dự án CVS hiện đang tham gia phát triển Subversion. Subversion rất phổ biến trong. chuyên nghiệp dành cho các ứng dụng tự do, đều có hỗ trợ Subversion cho các ứng dụng được lưu trữ trong máy chủ. Ngoài ra Google Code và BountySource chỉ sử dụng Subversion để quản lý các phiên