Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

HƯỚNG DẪN SỬ DỤNG PHẦN MỀM SUBVERSION (SVN) TOÀN TẬP

1,443 views

Published on

HƯỚNG DẪN SỬ DỤNG PHẦN MỀM SUBVERSION (SVN) TOÀN TẬP

Published in: Technology
  • Be the first to comment

  • Be the first to like this

HƯỚNG DẪN SỬ DỤNG PHẦN MỀM SUBVERSION (SVN) TOÀN TẬP

  1. 1. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 1 © DVMS HƯỚNG DẪN SỬ DỤNG PHẦN MỀM SUBVERSION (SVN) ( Tài liệu kỹ thuật ) Nhật ký thay đổi A – Added, M – Modified, D – Deleted Ngày Người thực hiện A,M,D (*) Detail Version Phê duyệt 07/2012 TECH TEAM Hướng dẫn sử dụng SVN 2.x 10/2017 TECH TEAM A,M Update tính năng mới 3.6.x Mục lục 1. Giới thiệu. ........................................................................................................................................ 3 2. Các quy định khi làm việc với SVN:............................................................................................... 3 3. Cài đặt và cấu hình SVN Server trên Windows............................................................................. 4 1. Tạo và quản lý user, nhóm user ................................................................................................................. 9 2. Quản lý Repository và dự án.................................................................................................................... 10 3. Phân quyền cho user hoặc group user ..................................................................................................... 15 4. Hướng dẫn sử dụng SVN trên TortoiseSVN client ...................................................................... 18 1. Đưa một project vào SVN server ( Trường hợp tạo mới )............................................................................. 18 2. Lấy một project, dữ liệu từ SVN ( Trường hợp tạo lần đầu ) ....................................................................... 20 3. Kiểm tra các file bị thay đổi với server SVN ( phần này sử dụng nhiều ) ..................................................... 21 4. Đưa file mới vào SVN ( phần này hay sử dụng)........................................................................................... 26 5. Lấy lại phiên bản trước đó về client (thư mục thực hiện dự án) ................................................................... 27 6. Xóa dữ liệu:................................................................................................................................................. 30 7. Các trạng thái của TortoiseSVN................................................................................................................... 30 8.Tối ưu Tortoise SVN Cache.......................................................................................................................... 31 5. Cài đặt và cấu hình SVN Server trên Linux ( Centos, Ubuntu )................................................. 32 1. Cài đặt và cấu hình SVN Server trên Centos............................................................................................ 32 2. Cài đặt SVN Server và Apache trên Ubuntu ............................................................................................. 35 Số: 04072012-QT/TECH-SVN
  2. 2. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 2 © DVMS 3. Sử dụng SVN trên máy trạm dùng Linux hoặc Mac.................................................................................. 37 4. Tự động commit ....................................................................................................................................... 38 6. Truy cập trên trình duyệt ............................................................................................................. 40 7. Theo tác trực tiếp trên hệ thống editor code................................................................................ 40 8. Dùng SVN Google Code ................................................................................................................ 40 Một số links tham khảo khác............................................................................................................... 40
  3. 3. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 3 © DVMS 1. Giới thiệu. - Hệ thống SVN là một hệ thống quản lý phần tài nguyên của một dự án. Hệ thống có khả năng tự 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ũ. - Bạn cũng có thể dung SVN để quản lý tài nguyên của công và thay thế cho các hệ thống chia sẻ file theo kiểu cổ điển, hoặc các phần mềm quản lý file khác. Vì SVN có cơ chế phân quyền khá tốt và ngoài ra khá dễ để lấy lại file cũ… hỗ trợ truy cập cả LAN và WAN, vì vậy rất cơ động và linh hoạt và bảo mật. - SVN sẽ gồm 2 thành phần đó là + SVN SERVER: Phần mềm lưu trữ, phân quyền tại server. + Client: Phần mềm giao tiếp, đồng bộ dữ liệu ở máy trạm, tức là phần mềm trên máy của bạn. - Về mặt khái quát, 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 trơn tru và an toàn hơn rất nhiều. - Các chức năng mà các bạn cần quan tâm nhất là chức năng Commit – để đưa các dữ liệu của các bạn lên thư mục dự án. Và tính năng thứ 2, là update, để cập nhập tài nguyên của dự án, phần mềm tự so sánh mã nguồn từ server và của các bạn và tìm ra chỗ nào khác sẽ tự động nối (merge) vào mã nguồn của các bạn đảm bảo không bị lỗi). Các bạn mỗi khi commit khuyến khích nên update xong rồi hãy commit để tránh tình trạng bị lỗi. - Các kiểu truy cập repo trên SVN: 1. file:/// : Truy cập trực tiếp vào repo trên local disk 2. http:// : Truy cập repo qua giao thức WebDAV trên Apache Server 3. https:// : Cũng giống như http:// nhưng sử dụng mã hóa SSL 4. svn:// : Truy cập repo qua giao thức riêng tới svnserve server. 5. svn+ssh:// :Giống với svn:// nhưng phải đi qua đường hầm (tunnel) SSH. Bài viết này sẽ hướng dẫn bạn sử cách truy cập repo qua http:// và https:// 2. Các quy định khi làm việc với SVN: - Khi thực hiện mới dự án: Nếu là một dự án mới thì quá trình thực hiện dự án như thường lệ, sau đó "Import" dự án vào SVN. - Khi thực hiện upgrade từ một dự án có sẳn trong SVN: Nếu phải thực hiện lại một dự án có sẵn thì phải "checkout" dự án đó từ SVN về thư mục thực hiện dự án. để SVN khởi tạo các thông tin quản lý source nguồn trên thư mục làm việc của dự án. - SVN Update trước khi SVN commit - Quản lý các phiên bản của một file nào đó (bất kỳ là file text, binary,...) vào server SVN. Quá trình kiểm tra sẽ được SVN sẽ kiểm tra tại 2 nơi: + Thư mục dự án (Nơi thực hiện dự án), tức là thư mục trên máy tính của bạn. + Thông tin dự án được lưu trữ trên server.
  4. 4. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 4 © DVMS Khi kiểm tra file hiện hành có sự thay đổi so với trên server SVN là SVN sẽ tạo một phiên bản mới lưu lại ( khi người dùng update -> commit). Việc quản lý phiên bản sẽ giúp việc phục hồi lại các version trước đó dể dàng mà không cần phải lưu backup tùm lum mà không biết cái nào trước cái nào sau ... Khi lưu từng phiên bản sẽ cho phép lưu kèm theo các thông tin liên quan như ...ai là người thay đổi , thay đổi chổ nào,thay đổi cái gì ... giúp cho việc quản lý source nguồn một các rõ ràng. Việc lưu trữ version SVN sử dụng các thuật toán so sánh và chỉ lưu trữ các thành phần khác nhau của mỗi verision nên dung lượng lưu trữ sẽ được tối ưu so với việc backup từng file. 3. Cài đặt và cấu hình SVN Server trên Windows - Có khá nhiều software để tạo SVN server trong đó đang được sử dụng nhiều đó là VISUALSVN SERVER ( https://www.visualsvn.com/server/ ) dùng cho Windows hoặc dung SVN server tích hợp chung trong các phần mềm quản lý dự án như Redmine dùng cho Linux… Ngoài ra bạn có thể dung SVN server của Google và một số hãng. - Bài này tôi hướng dẫn cài đặt và cấu hình SVN server sử dụng Visual SVN Server trên Windows Bước 1: Chuẩn bị: Bạn cần có một máy làm server, tùy vào quy mô công ty bạn mà chọn cấu hình máy server cho phù hợp. Tôi nói là máy dùng làm server chứ không phải bạn cần mua nguyên con server nhé, tùy vào quy mô công ty mà bạn chọn. Bạn hoàn toàn có thể dùng một máy tính PC thông thường hoặc laptop để làm SVN server. Trên máy này bạn cài Windows vào, Windows gì thì tùy bạn. Có thể dùng Windows 7, 8, 10... nhưng theo tôi thì bạn nên dùng Windows server. Bước 2: Vào https://www.visualsvn.com/server/ download bản Visual SVN Server 32bit hoặc 64bit tùy vào hệ điều hành trên server bạn đang dùng là 32bit hay 64bit nhé. Bước 3: Tạo thư mục Repository Đây là thư mục lưu trữ toàn bộ data của toàn bộ công ty của bạn nhé, vì vậy tôi khuyên bạn nên tạo thư mục tại ổ khác ổ cài đặt hệ điều hành ví dụ ổ D hay E... *Lưu ý: Tại sao tôi nói bạn nên tạo thư mục lưu trữ tại ổ khác ổ đĩa cài hệ điều hành. Vì nếu các bạn cài trên ổ cài hệ điều hành ( thường là ổ C ), thì khi bị hư hệ điều hành thì sẽ khá khó để khôi phục được dữ liệu của bạn. Ngoài ra bạn cũng phải lưu ý là tất cả các dữ liệu quan trọng khác của bạn cũng vậy nhé, không bao giờ được lưu trên desktop hoặc các khu vực thuộc ổ đĩa cài hệ điều hành. Bước 4: cài đặt Việc cài đặt tương đối đơn giản, bạn click vào file mới download về và làm theo các bước thôi.
  5. 5. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 5 © DVMS
  6. 6. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 6 © DVMS
  7. 7. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 7 © DVMS - Đến bước chọn nơi lưu trữ ( Repositories ) thì bạn chọn vào thư mục bạn đã tạo trước đó. - Bạn nên check vào Use Secure Connection (https://) vì giao thức truy cập này an toàn hơn giao thức mặc định là http. - Bạn cũng không nên để Server port mặc định. port mặc định nếu bạn không chọn https là 80, còn nếu chọn https thì mặc định là 443. Tuy nhiên bạn nên đổi sang port khác khó đoán hơn.  Kết thúc bước 4 là bạn đã có SVN Server. - Sau khi cài đặt xong thì bạn click vào icon trên desktop hoặc chọn trong menu tab để mở SVN server lên, chọn VisualSVN Server Manager
  8. 8. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 8 © DVMS - Bạn sẽ có các thành phần sau: + Repositories: Là nơi lưu trữ data + Users: Quản lý, tạo, sửa, xóa user + Groups: Tạo và quản lý các nhóm làm việc. Tức là bạn có thể phân quyền theo từng user hay theo nguyên nhóm làm việc. + Jobs: ở các version cũ thì không có phần này, từ version 3.6 trở đi thì có thêm phần này, phần này để bạn tạo các lệnh backup tự động.
  9. 9. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 9 © DVMS 1. Tạo và quản lý user, nhóm user Nhập thông tin username/password Cứ lần lượt bạn tạo toàn bộ user cho công ty của bạn. Bạn có thể tạo ra các nhóm riêng ví dụ tách riêng các phòng bạn ra bằng cách tạo ra các nhóm
  10. 10. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 10 © DVMS  Sau đó tiến hành add user vào nhóm, bằng cách double click vào tên nhóm muốn add => chọn nút: Add  Tiếp theo bạn chọn user hoặc nhóm user để add vào nhóm mới tạo. 2. Quản lý Repository và dự án - Theo mô hình phân cấp thư mục của SVN thì đầu tiên là Repository => sau đó đến Project ( dự án) hoặc Forder ( thưc mục ) => trong mội dự án hoặc thư mục ta có thể tạo ra dự án hoặc thưc mục con trong nó.
  11. 11. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 11 © DVMS - Tuy nhiên tùy vào mô hình công ty mà bạn áp dụng mô hình cho phù hợp. Tôi ví dụ một số mô hình tổ chức như sau: Mô hình 1: Công ty có nhiều chi nhánh và quản lý theo dự án Mô hình 2: Công ty có nhiều chi nhánh và quản lý theo phòng ban SVN Repository CN1 Project1 Project con Forder con Forder dùng chung Repository CN2 Project2 Forder dùng chung Repository CNn ... SVN Repository CN1 P.Giải pháp Project ... Forder ... P.Kinh doanh ... Repository CN2 P.Giải pháp ... P.Kinh doanh ... Repository CNn ...
  12. 12. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 12 © DVMS Mô hình 3: Quản lý tập trung và hỗn hợp - Bạn có thể chọn các mô hình tổ chức khác nếu tùy vào nghiệp vụ vận hành của công ty. - Trong các ví dụ tiếp theo tôi sẽ dùng mô hình tổ chức 3.  Bước tiếp theo chúng ta tạo mới một Repository với tên công ty của bạn ( ví dụ tôi tạo theo tên công ty tôi là DVMS ). Đây là một Repository rỗng chưa có dữ liệu, dữ liệu sẽ được đồng bộ lên server từ một subversion client bởi các thành viên được phân quyền. SVN Repository P.Giải pháp Project ... Forder ... P.Kinh doanh ... ...
  13. 13. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 13 © DVMS
  14. 14. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 14 © DVMS - Mặc định không ai được phép truy cập vào Repository này, chúng ta sẽ phân quyền sau.
  15. 15. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 15 © DVMS  Tiếp theo bạn sẽ tạo ra các dự án hoặc thư mục riêng cho từng phòng ban, bộ phận. 3. Phân quyền cho user hoặc group user  Sau khi tạo xong phòng ban, hoặc các dự án chung => nhấn phải chuột vào dự án hoặc thư mục của từng phòng ban và phân quyền user vào, Ví dụ tôi có phòng giải pháp chẳng hạn => nhấn chuột phải vào tên phòng giải pháp => Nhấn Add để thêm user có quyền truy cập vào phòng này.
  16. 16. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 16 © DVMS *Lưu ý: ở đây tôi tạo user tên là tran nhé, với nhóm user thì bạn cũng làm tương tự như đối với user.  Chọn user hoặc nhóm user cần phân quyền => chọn nút Ok để add vào
  17. 17. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 17 © DVMS  Lựa chọn quyền hạn của User hoặc nhóm user => Chọn Apply => Ok để thực thi.
  18. 18. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 18 © DVMS  Bạn cứ tiến hành add lần lượt tất cả user vào từng phòng ban. *Lưu ý: nếu bạn đã tạo ra nhóm user trước đó rồi thì ở các bước add user phía trên, bạn không cần add từng user nhé. Chỉ cần add cái group user đó vào và phân quyền là xong, chỉ có user nào bạn cần cho quyền đặc biệt thì add riêng. Ví dụ: tôi đã có nhóm user có tên là: phòng giải pháp => tôi add nhóm user này vào thư mục của phòng giải pháp với quyền Read Only. Như vậy là toàn bộ các user trong nhóm phòng giải pháp có quyền xem các nội dung, dự án trong thư mục này. Tuy nhiên ông trưởng phòng tran cần có quyền ghi, update chằng hạn thì tôi cần add riêng user tran và cấp quyền cho user này có quyền Read / Write. - Các phòng ban khác, hoặc chi nhánh khác thì bạn tiến hành tương tự. 4. Hướng dẫn sử dụng SVN trên TortoiseSVN client Phần mềm TortoiseSVN (http://tortoisesvn.net/) là client tốt nhất của hệ thống SVN trên môi trường hệ điều hành Windows. Hướng dẫn ở dưới chỉ có hướng dẫn vài tính năng cơ bản, các bạn nên đọc thêm phần hướng dẫn của tortoiseSVN để biết thêm nhiều tính năng rất mạnh của nó. 1. Đưa một project vào SVN server ( Trường hợp tạo mới ) Mở windows explorer lên, chọn thư mục của dự án thực hiện "right click" và chọn TortoiseSVN -> Import... Các bước như sau : Bước 1: Chọn chức năng import
  19. 19. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 19 © DVMS Bước 2: Điền các thông tin cần thiết (khi truy cập vào url server thì sẽ có dialog yêu cầu nhập thông tin username + password đã gửi). Chú ý: Đường dẫn trong hình dưới chỉ mang tính tham khảo, còn url cụ thể thì sẽ tùy thuộc vào từng dự án mà có link khách nhau.
  20. 20. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 20 © DVMS Bước 3 : Ngồi đợi và chờ ....kết thúc ...xong 2. Lấy một project, dữ liệu từ SVN ( Trường hợp tạo lần đầu ) Khi cần lấy các source code, tài liệu từ server SVN thì thực hiện các bước như sau : Mở windows explorer lên, chọn (hoặc tạo mới) một thư mục để chứa các source code của dự án *chú ý : thư mục phải rỗng . Bước 1 : chọn thư mục chứa dự án
  21. 21. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 21 © DVMS Bước 2 : chọn thông tin dự án trên server Bước 3 : Ngồi đợi và ...ok thế là xong , bạn đã có các thông tin của dự án trên máy của mình 3. Kiểm tra các file bị thay đổi với server SVN ( phần này sử dụng nhiều ) Kiểm tra sự thay đổi của source nguồn Nếu chưa có bất kỳ sự thay đổi nào thì icon của thư mục dự án như sau Nếu có một file, hay một thư mục nào có sự thay đổi thì icon cùa thư mục như sau
  22. 22. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 22 © DVMS Cho biết file bị thay đổi Xem file đó thay đổi nội dung gì Thông tin thay đổi
  23. 23. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 23 © DVMS Right click ... tìm chức năng "Compare with base" Tìm xem thử coi chi tiết là nó thay đổi cái gì ?
  24. 24. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 24 © DVMS Vậy là biết cái file đó đã bị thay đổi như thế nào .... Giờ làm sao đưa thông tin thay đổi vào server SVN đây ..... Dùng chức năng "Commit ..." để đưa thông tin vào server Check vào các file cần commit, hoặc bỏ bớt một số file chưa cầu commit (nếu là nhiều file)
  25. 25. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 25 © DVMS Ok....và ngồi đợi ....... thế là xong ...quá đơn giản ^-^
  26. 26. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 26 © DVMS Sau khi commit các thông tin giữa clien và version mới nhất tại server hoàn toàn giống nhau thì icon của thư mục thư mục ..trở về như cũ. 4. Đưa file mới vào SVN ( phần này hay sử dụng) Nếu trong quá trình phát triển dự án cần thêm một số file vào dự án( có thể thêm thư mục mới ) .... thì sau khi thêm vào các bạn chọn chức năng "add" để đưa các file này vào SVN Bước 1: right click vào file chưa có icon SVN Bước 2: Chọn các file cần đưa .... nếu trong bước 1 là một thư mục. Bước 3: Ngồi đợi ...và xong.
  27. 27. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 27 © DVMS Bước 4: sau khi đưa lên thì phải ... commit các thông tin đó quá trình commit thì tương tự như các bước trên ( cập nhật file có thông tin thay đổi). 5. Lấy lại phiên bản trước đó về client (thư mục thực hiện dự án) Chọn file cần muốn lấy lại các version (phiên bản) trước đây
  28. 28. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 28 © DVMS Dialog yêu cầu thông tin version nào Không biết thì click vào "Show log"
  29. 29. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 29 © DVMS Chọn được ...một version ưng ý (con số 53) Oke .... thế là xong ... file trên thư mục local đã được lấy lại các thông tin của version 53 trước đó
  30. 30. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 30 © DVMS 6. Xóa dữ liệu: - Để xóa một file nào đó đi thì bạn chỉ cần xóa file đó trong thư mục chứa SVN của bạn rồi sau đó commit lên ( những file bạn xóa thì cột: “Text status” sẽ là missing ). 7. Các trạng thái của TortoiseSVN - Nhìn vào các cảnh báo trong thư mục dự án của bạn thì bạn sẽ biết được phần dữ liệu của mình đang khác so với server những gì, từ đó bạn thực hiện các hành động để đồng bộ với server.
  31. 31. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 31 © DVMS 8.Tối ưu Tortoise SVN Cache Khi cài Tortoise SVN thì có 1 process tên là TSVNCache.exe , process này giúp tạo các icon overlay trên các file và folder trong Windows Explorer. Chính process TSVNCache.exe này đã tiêu tốn 1 số tài nguyên của máy. Nhiều developer chọn cách disable process này, đồng thời có nghĩa là bạn bỏ chức năng overlay icon của Tortoise SVN. Có 1 cách để tối ưu hóa TSVNCache.exe mà không disable chức năng overlay icon. Bước 1: Mở cửa sổ Setting của Tortoise SVN, rồi mò đến cấu hình như hình sau:
  32. 32. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 32 © DVMS Bước 2: - Exclude path: ở đây ở máy tôi có 2 partition C & D, bạn liệt kê đường dẫn muốn svncache không scan đến. Mỗi path trên 1 dòng. - Ở đây mình muốn svncache không scan toàn bộ computer. - Include Path: Liệt kê các folder mà bạn muốn svncache scan. Vì lý do các source code mình để trong 1 folder tên là D:08_Project nên mình liệt kê 1 folder này thôi, còn bạn có nhiều folder chứa source code thì set mỗi folder trên dòng. Lưu ý : bắt buộc có dấu * sau mỗi path. * tức là “sao cũng được” Bước 3: Reboot lại máy hoặc kill process TSVNCache.exe trong Task Manager rồi open lại TortoiseSVN. 5. Cài đặt và cấu hình SVN Server trên Linux ( Centos, Ubuntu ) - Với môi trường server của bạn dùng hệ điều hành Linux thì bạn có thể dùng các gói all in one tích hợp sẵn trong các phần mềm quản lý dự án ví dụ như Redmine ... Tuy nhiên bài này tôi sẽ hướng dẫn bạn cài đặt SVN Server độc lập trên Centos và Ubuntu. 1. Cài đặt và cấu hình SVN Server trên Centos Yêu cầu trước khi triển khai và cấu hình: - Centos 5 hoặc 6 - Đã cài HTTPD (Apache) Cài đặt: Cài đặt module mod_dav_svn cho apache và chương trình subversion yum install mod_dav_svn subversion Cấu hình: Chỉnh sửa file cấu hình apache (httpd.conf) vim /etc/httpd/conf/httpd.conf Bỏ comment ở dòng 232 để nó thành: Include conf.d/*.conf Tạo thư mục Repository chứa các project: cd /var/www/svn Tạo Repository DVMS ( ở đây tôi đặt theo tên công ty tôi, bạn có thể đặt tên khác nhé ) svnadmin create dvms Chuyển nhóm sở hữu thư mục vừa tạo là user đang chạy httpd (apache), ví dụ tôi để là dvms chown -R apache.apache dvms
  33. 33. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 33 © DVMS Bảo với SElinux cho phép httpd truy xuất vào thư mục hieuht (nếu bạn chưa tắt SElinux) chcon -R -t httpd_sys_content_t dvms Config HTTPD Subverion. (Sử dụng xác thực người dùng qua HTTPD) Sau khi đã tạo repository và cấp phép cho chúng, giờ chúng ta config các tham số cần thiết như location http, giới hạn truy cập, phân quyền người dùng (các lập trình viên) tham gia vào reposition. Chỉnh sửa file /etc/httpd/conf.d/subversion.conf để truy cập từ HTTP (80), có nội dung như sau: <Location /dvms> DAV svn SVNPath /var/www/svn/dvms AuthType Basic AuthName "Subversion dvms project" AuthUserFile /etc/svn-auth-conf Require valid-user AuthzSVNAccessFile /etc/svn-acl-conf </Location> Khi đó bạn sẽ truy cập vào repository dvms bằng đường link: http://localhost/dvms Trong đó cần chú ý: SVNPath /var/www/svn/repos : Đường dẫn tới SVN repository của bạn AuthUserFile /etc/svn-auth-conf: File chứa thông tin người dùng (lập trình viên) truy cập vào. Người dùng được tạo bằng cách: [root@0day ~] htpasswd -cm /etc/svn-auth-conf yourusername New password: Re-type new password: Adding password for user yourusername [root@0day ~] htpasswd -m /etc/svn-auth-conf anotherusername New password: Re-type new password: Adding password for user anotherusername AuthzSVNAccessFile /etc/svn-acl-conf: File chứa nội dung phân quyền, ACL – Access Control List. File này có format như dưới: Trong đó: r = read rw = read + write không cho user vào trong ACL thì người đó sẽ bị “Permission Deny” – Không có quyền gì cả! [reponame:repopath] user = access Hoặc phân chia theo từng nhóm. File mẫu: [groups] staff = datad, tamhn
  34. 34. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 34 © DVMS [datad:/] vandc = r @staff = rw Sau khi đã hoàn tất việc cấu hình, tinh chỉnh: Bạn restart lại httpd và test! service httpd restart cho apache khởi động cùng máy chkconfig httpd on Config SVN:// Subversion Nếu bạn không muốn cho người dùng (coder) truy cập repository qua web browser (sử dụng webdav) thì bạn có thể sử dụng cách cấu hình và phân quyền sử dụng giao thức svn:// Sau khi bạn đã tạo được repository dvms `svnadmin createa dvms`, bạn nhảy nhẹ nhàng vào trong `cd dvms/conf` Khi đã trong conf/ của repository ấy, bạn chỉnh sửa file sau: svnserve.conf : File này chứa các thông tin cấu hình như khai báo xác thực người dùng, phân quyền, chính sách xác thực,.., người dùng anonymous,…, khai báo theo mẫu “variable = value”, các biến chỉ dc thiết lập và có giá trị khi nằm trong [general], nhứng dòng bắt đầu bằng dấu # thì sẽ không có giá trị. passwd: Chứa thông tin người dùng, username và mật khẩu, chỉ có nghĩa khi đứng sau [users]. Format, “username = password” auhtz: Chứa thông tin về nhóm người dùng và permission người dùng hoặc nhóm. Ví Dụ: svserve.conf [general] #anon-access: None | Read | Write. Permission cho những người dùng anonymous. Default: Read anon-access = none #auth-access: None| Read | Write. Permission cho những người dùng hợp pháp. Default: Write auth-access = read #File sẽ lưu thông tin người dùng( trong đây là file passwd, đứng ngang hàng với file svserve.conf) password-db = passwd #realm: Tên báo cáo repo realm = My First Repository passwd dvms = 123456 abc = xyz auhtz file này được miêu tả rất chi tiết bên trong. Bạn có thể đọc. Quy ước: - r: read - w: write - không ghi thì không có quyền gì cả. Chạy dịch vụ svserve như một daemon:
  35. 35. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 35 © DVMS svnserve -d -r /path/to/svn/repo/ Mặc định: svnserve sẽ giao tiếp qua cổng (port): 3690 Checkout svn checkout svn://0day.biz/repo 2. Cài đặt SVN Server và Apache trên Ubuntu - Cài đặt Apache sudo apt-get install apache2 - Cài đặt Subversion sudo apt-get install subversion - Cài đặt thư viện libapache2-svn sudo apt-get install libapache2-svn - Khởi động lại apache sudo /etc/init.d/apache2 restart - Khởi tạo enable SSL mode a2enmod ssl - Cấu hình lại cổng kết nối cho giao thức SSL sudo gedit /etc/apache2/ports.conf Listen 80 <IfModule mod_ssl.c> Listen 443 </IfModule> - Đăng ký xác thực qua SSL apache2-ssl-certificate
  36. 36. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 36 © DVMS * Nếu có thông báo command not found thì: + dùng lệnh sau để đăng ký: alias apache2-ssl-certificate='sudo /usr/sbin/make-ssl-cert /usr/share/ssl- cert/ssleay.cnf /etc/apache2/ssl/apache.pem hoặc: + Tạo thư mục /etc/apache2/ssl bằng lệnh sudo mkdir /etc/apache2/ssl + Dùng lệnh sau để đăng ký: sudo /usr/sbin/make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem - Tạo một file config SSL bằng cách copy và đổi tên thành myown-ssl bằng lệnh: sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/myown-ssl - Sửa lại nội dung file myown-ssl sudo gedit /etc/apache2/sites-available/myown-ssl - Thay đổi các nội dung sau: NameVirtualHost * VirtualHost * thành NameVirtualHost *:443 VirtualHost *:443 - Chèn đoạn mã sau vào trước thẻ </VirtualHost> SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.pem SSLProtocol all SSLCipherSuite HIGH:MEDIUM - Ghi lại nội dung file đã sửa đổi và khởi tạo enable cho svn a2ensite myown-ssl - Khởi động lại apache sudo /etc/init.d/apache2 restart - Cấu hình lại file config của subversion sudo gedit /etc/apache2/mods-available/dav_svn.conf <Location /svn> DAV svn SVNPath /srv/svn
  37. 37. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 37 © DVMS AuthType Basic AuthName "Subversion Repository" AuthUserFile /etc/apache2/dav_svn.passwd AuthzSVNAccessFile /etc/apache2/dav_svn.authz #<LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user #</LimitExcept> </Location> -Tạo ra mật khẩu của user ten_user và lưu vào file dav_svn.passwd sudo htpasswd -cm /etc/apache2/dav_svn.passwd ten_user (Từ user thứ 2 thì bỏ tham số c (create) ở trên đi, tham số m có nghĩa là mã hoá mật khẩu bằng md5) -Cấu hình file /etc/apache2/dav_svn.authz để phân quyền cho người dùng đăng nhập vào hệ thống. [groups] admins = user1, user2 users = user3, user4 [/] @admins = rw @users = r * = - Khởi động lại apache sudo /etc/init.d/apache2 restart - Tạo Repository cho subversion sudo svnadmin create /srv/svn sudo chown -R www-data:www-data /srv/svn sudo chmod -R g+ws /srv/svn - Khởi động lại apache và kết nối thử đến https://localhost/svn 3. Sử dụng SVN trên máy trạm dùng Linux hoặc Mac - Trên máy linux dùng đồ họa thì bạn có thể cài một số tool để làm việc với svn bằng môi trường đồ họa. Ngoài ra bạn cũng có thể dùng dòng lệnh để làm việc. - Một số lệnh cơ bản: import lên SVN: svn import [đường dẫn dự án ở máy mình] [link dự án trên server] –m [" ghi chú"]
  38. 38. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 38 © DVMS Ví dụ: svn import webapp/ http://192.168.100.163/repos/webapp -m "import" Check out SVN svn co [link svn] [ đường dẫn thư mục dự án ở máy mình] Ví dụ: svn co http://192.168.100.163/repos/webapp/trunk Magento Update SVN svn update [link svn] [ đường dẫn thư mục dự án ở máy mình] Commit svn commit [PATH...] các lệnh khác tham khảo tại: svn checkout/co svn add svn propset svn delete svn status svn update/up svn commit/ci svn diff svn move 4. Tự động commit A convenient way to make auto commits when the files change. You need the svn client to make this script work. Add it as a startup script and worry no more. #!/bin/bash # Run commit every second. # Why? Cron can't do that. # This can be used combined with a post-commit hook to make a kind of a versioned FTP :P
  39. 39. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 39 © DVMS # This script needs a initial checkout! A working copy must exist a priori! # You need to set-up a "svn-path" file in the same directory as the script with one working copy a line # /absolute/working-copy/ # /absolute/working-copy2/ # Bugs: # Sometimes when you work with someone else on the same file it can overwrite others modifications with yours without throwing a conflict # Good thing it's svn and you can easily merge the modifications afterwards. Still this bug is annoying # Change this to your paths script_path="/home/sasha/Scripts/" paths_file="/home/sasha/Scripts/svn-paths" while [ true ]; do message="*Auto-message*" for local_path in `cat $paths_file| grep -v "#"`; do stat=`svn status $local_path` if [[ $stat != '' ]]; then #Are there any changes? delete_files=`echo $stat|grep -e "^!"|cut -d" " -f2` if [[ $delete_files != '' ]]; then svn delete $delete_files>/dev/null 2>/dev/null svn commit --non-interactive -m "$message (delete)" $remote_url >/dev/null 2>>"$script_path"commit_log fi # Do we have any files to add add_files=`echo $stat|grep -e "^?"|cut -d" " -f2` if [[ $add_files != '' ]]; then svn add $add_files >/dev/null 2>/dev/null # Add new files if there are any
  40. 40. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 40 © DVMS svn commit --non-interactive -m "$message (add)" $remote_url >/dev/null 2>>"$script_path"commit_log # Finaly commit fi svn update $local_path >/dev/null 2>>/dev/null #Checkout first svn commit --non-interactive -m "$message (modified)" $local_path >/dev/null 2>>"$script_path"commit_log # Finaly commit fi done sleep 1 done 6. Truy cập trên trình duyệt - Khi ra ngoài mà không có máy cài svn client thì bạn vẫn có thể truy cập vào hệ thống svn để lấy các văn bản giấy tờ. ví dụ như đi gặp khách hàng mà quên không mang theo biên bản làm việc... Bằng cách sử dụng trình duyệt web và truy cập vào linh svn của bạn trên server => đăng nhập bằng username và password của bạn. - Cách này chỉ dowload được, không update hay commit được nhé. - Ngoài ra để truy cập được thì hệ thống SVN Server của công ty bạn cần được NAT ra bên ngoài thông qua domain hoặc IP. 7. Theo tác trực tiếp trên hệ thống editor code - Một số phần mềm lập trình có hỗ trợ làm việc với SVN, ví dụ như bộ Studio.net , Dreamware, Eclipse... tuy nhiên đa số bạn sẽ cần cài thêm plugin. 8. Dùng SVN Google Code - Nếu bạn dùng SVN trên hệ thống Google code thì cũng thao tác phía client tương tự nhé vì khi này thì Google sẽ đóng vai trò là SVN Server. Một số links tham khảo khác http://subversion.apache.org/packages.html#redhat http://www.syncrosvnclient.com/download.html http://www.yolinux.com/TUTORIALS/LinuxSubversionAndTracServer.html http://wiki.greenstone.org/wiki/index.php/Install_SVN_on_Linux#Install_APR_and_APR-Util http://the.earth.li/pub/subversion/summersoft.fay.ar.us/pub/subversion/latest/ CHÚC THÀNH CÔNG!
  41. 41. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 41 © DVMS DVMS chuyên:  Tư vấn thiết kế các phần mềm (ứng dụng) trên mobile: iPhone, iPad , Android, Tablet, Windows Phone, Blackberry...  Nhận viết các ứng dụng, phần mềm trên mobile: iPhone, iPad , Android, Tablet, Windows Phone, Blackberry...  Tích hợp phần mềm hiện có của doanh nghiệp lên smartphone và máy tính bảng, tích hợp các hệ thống viễn thông, truyền hình... CTY DVMS Head Office: 150/30 Truc Street, 13 Ward, Binh Thanh District, Ho Chi Minh City, Viet Nam Ha Noi Branch: Floor 9, 169 Nguyen Ngoc Vu Street, Trung Hoa Ward, Cau Giay District, Viet Nam Hai Phong Branch: Hai Phong city, Viet Nam Tel: +84836028937 | +84835531145 - Fax: +84835531145 Email: sale@dvms.vn Website: www.dvms.vn | www.giaiphapgiaothong.com Our Solutions: Giải pháp cho giao thông thông minh: http://giaiphapgiaothong.com ; Vận tải thông minh: http://vantaithongminh.com ; Giải pháp giao nhận thông minh: http://giaiphapgiaonhan.com ; Giải pháp cho bệnh viện, y tế: http://www.giaiphapbenhvien.com ; Bác sĩ gia đình: http://bacsigiadinh.giaiphapbenhvien.com ; Giải pháp cho công ty tín dụng http://www.giaiphaptindung.com ; Giải pháp cho giáo dục http://giaiphapgiaoducdaotao.com ; Giải pháp doanh nghiệp: http://giaiphapdieuhanh.com ; Giải pháp cho công ty bảo hiểm http://baohiem.taoungdung.com ; Giải pháp bán hàng, quản lý hệ thống phân phối http://ssale.giaiphapdieuhanh.com ; Giải pháp truyền hình; và giải pháp cho nhiều lĩnh vực khác ... Nơi nhận: - Lưu CRM - Chuyển giao kỹ thuật nội bộ - Chuyển giao kỹ thuật online

×