Hướng dẫn dùng tortoisesvn quản lý source chung năm 2024

  • 1. Án Phần Mềm Đề tài 4 Nghiên cứu quản lý mã nguồn phần mềm với SubVersion Giảng viên hướng dẫn : Thầy Bùi Minh Cường - Bộ môn CNPM Nhóm : Lương Bá Hợp MSSV 1105068 : Bùi Thị Xuyên MSSV 1114928 Lớp : Hệ Thống Thông Tin K52 1
  • 2. hiểu chung 1. Subversion là gì ? 2. Subversion làm được gì ? 3. So sánh subversion và các tool khác 4. Cài đặt subversion cho client 5. Tổng quát chức năng subversion 6. Một số action quan trọng trong SVN Demo 1. Ý tưởng dự án 2. Khởi tạo subversion trên google Code 3. Thao tác của client với subversion 2
  • 3. 3
  • 4. gì ?  Hệ thống SubVersion (SVN) là một hệ thống quản lý phần tài nguyên (code , hình ảnh , video…) của một dự án.  Hệ thống có khả năng cập nhật, so sánh và kết hợp tài nguyên mới vào phần tài nguyên cũ , đượ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ả. 4
  • 5. gì ?  SVN hoạt động theo phương thức Client/Server, code project sẽ được lưu trữ trên server (SVN hosting , GoogleCode,…)  Các client có thể thao tác, edit trực tiếp trên đó, mọi thay đổi của từng client sẽ được lưu lại.  Do đó SVN là một giải pháp làm việc nhóm từ xa hiệu quả, an toàn 5
  • 6. được gì ?  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. 6
  • 7. được gì ? 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. 7
  • 8. được gì ? 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. 8
  • 9. được gì ? 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. 9
  • 10. được gì ?  Điểm đặc 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. 10
  • 11. được gì ? 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ộ. 11
  • 12. được gì ? Subversion hỗ trợ khá nhiều giao thức để kết nối giữa client và server. Việc cho phép server hỗ trợ giao thức nào phụ thuộc vào lúc cấu hình. 12
  • 13. được gì ? Ví dụ bạn có thể dùng các giao thức của ứng dụng web như : • Http:// hoặc https:// • 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://. 13
  • 14. Subversion và các tool khác 14 Subversion CVS Git Là hệ thống quản lý source code tập trung (Centralized) Quản lý source code tập trung (Centralized). Là một phương pháp quản lý phiên bản theo hướng phân tán (Distributed). Các commit có thể được roll-back lại trạng thái trước đó. Không thể roll-back. Các commit có thể được roll-back lại trạng thái trước đó. 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 đó Tập tin bị đổi tên hoặc di chuyển sẽ bị mất history trước đó 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 và mang theo cả history Có khả năng đẩy bất cứ những thay đổi mới đến Repository cha. Chỉ có thể đẩy những thay đổi mới lên Repository con của nó. Tất cả thao tác làm việc với Git đều ở trên máy của local, local repository. Có thể những thay đổi push
  • 15. Subversion và các tool khác 15 sử dụng SSH, ngoài ra còn 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. Sử dụng giao thức SSH để truyền tải. Sử dụng SSH để truyền tải. (SSH là 1 giao thức mạng ) Làm việc trong mạng LAN hay Internet. Làm việc trong mạng LAN hay Internet. Làm việc trong mạng LAN hay Internet. Nếu server down thì các thành viên khác không thể update thay đổi từ server - > khả năng làm việc offline không cao. Nếu server down thì các thành viên khác không thể update thay đổi từ server - > khả năng làm việc offline không cao. Có khả năng làm việc offline(server down),vì mỗi bản copy của thành viên đều là full copy từ repository gốc trên máy thành viên (update trực tiếp không cần server). Thao tách trên GUI hay Thao tác trên GUI Thao tác trên GUI hay
  • 16. SVN cho Client  Download tại trang http://tortoisesvn.joydownload.com/ 16
  • 17. SVN cho Client  Double click vào file để cài -> Next 17
  • 18. SVN cho Client  Chọn như trong hình -> Click Next 18
  • 19. SVN cho Client  Chọn vị trí cài đặt -> Next 19
  • 20. SVN cho Client  Click Install để cài đặt 20
  • 21. SVN cho Client  Quá trình cài đang thực hiện 21
  • 22. SVN cho Client  Cài đặt hoàn thành -> Finish 22
  • 23. khái niệm chính trong SVN  Reposiroty: server chứa SVN và đặt Project  HEAD: phiên bản mới nhất trên server  Master: thông thường khi tạo SVN, có một branch chính được tạo ra và gọi là master, các branch phụ thường được đặt theo tên feature mà branch đó được tạo. Với hình trên, đường nối các ô màu xanh lá thể hiện master, các đường nối ô màu vàng thể hiện branch được tạo ra 23
  • 24. khái niệm chính trong SVN  Change: mô tả sự thay đổi cụ thể của 1 revision so với revision trước đó  Working copy: bản copy của toàn bộ SVN tại máy của developer  Conflict: xung đột xảy ra khi có nhiều developer cùng làm việc với 1 working copy VD : A và B cùng checkout revision 40 của file 24
  • 25. khái niệm chính trong SVN  Config.js Sau đó A sửa function update() rồi commit lên revision 41, lúc này B cũng sửa function đó, khi B checkout về sẽ xảy ra conflict do SVN không biết được phiên bản của A hay B mới là latest  Resolve: Lúc này, B sẽ xem xét lại code trong function, giữ lại đoạn code của A hoặc sửa nó, đánh dấu Conflict đã được Resolve 25
  • 26. action quan trọng trong SVN • 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ộ. 26
  • 27. action quan trọng trong SVN • 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. 27
  • 28. action quan trọng trong SVN • 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. 28
  • 29. action quan trọng trong SVN • Merge: nhiều thành viên cùng tiến hành cập nhật trên một tập tin. 29
  • 30. action quan trọng trong SVN  Revert: sau khi tiến hành thay đổi, developer cảm thấy họ đã sai và muốn xóa đi làm lại từ đầu, việc revert là hành động để khôi phục trạng thái của 1 hay nhiều document về 1 revision nào đó, thường thì sẽ revert về revision hiện tại mà user đang làm việc 30
  • 31.