SlideShare a Scribd company logo
1 of 41
Download to read offline
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
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
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.
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.
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
5 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
6 © DVMS
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
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.
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
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ó.
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
...
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
...
...
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
13 © DVMS
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.
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.
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
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.
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
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.
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
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
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
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ì ?
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)
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 ^-^
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.
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
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"
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 đó
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.
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:
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
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
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:
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
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
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ú"]
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
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
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!
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

More Related Content

What's hot

Nghiên cứu tình hình viêm phổi liên quan thở máy tại khoa hồi sức tích cực bệ...
Nghiên cứu tình hình viêm phổi liên quan thở máy tại khoa hồi sức tích cực bệ...Nghiên cứu tình hình viêm phổi liên quan thở máy tại khoa hồi sức tích cực bệ...
Nghiên cứu tình hình viêm phổi liên quan thở máy tại khoa hồi sức tích cực bệ...nataliej4
 
Báo cáo thực tập tốt nghiệp
Báo cáo thực tập tốt nghiệpBáo cáo thực tập tốt nghiệp
Báo cáo thực tập tốt nghiệpSammy Chiu
 
Tóm tắt lệnh Ubuntu
Tóm tắt lệnh UbuntuTóm tắt lệnh Ubuntu
Tóm tắt lệnh UbuntuQuang Ngoc
 
CẬP NHẬT NHIỄM KHUẨN HUYẾT
CẬP NHẬT NHIỄM KHUẨN HUYẾTCẬP NHẬT NHIỄM KHUẨN HUYẾT
CẬP NHẬT NHIỄM KHUẨN HUYẾTSoM
 
Thiết Kế Giao Diện Người dùng
Thiết Kế Giao Diện Người dùngThiết Kế Giao Diện Người dùng
Thiết Kế Giao Diện Người dùngPhương Minh
 
Dự Đoán Lỗ Hổng Phần Mềm Dựa Trên Kỹ Thuật Khai Phá Dữ Liệu _08300812092019
Dự Đoán Lỗ Hổng Phần Mềm Dựa Trên Kỹ Thuật Khai Phá Dữ Liệu _08300812092019Dự Đoán Lỗ Hổng Phần Mềm Dựa Trên Kỹ Thuật Khai Phá Dữ Liệu _08300812092019
Dự Đoán Lỗ Hổng Phần Mềm Dựa Trên Kỹ Thuật Khai Phá Dữ Liệu _08300812092019hanhha12
 
Triển khai nps network policy server trên windows server 2008
Triển khai nps network policy server trên windows server 2008Triển khai nps network policy server trên windows server 2008
Triển khai nps network policy server trên windows server 2008laonap166
 
[Đồ án môn học] - Đề tài: Tìm hiểu Git và Github
[Đồ án môn học] - Đề tài: Tìm hiểu Git và Github[Đồ án môn học] - Đề tài: Tìm hiểu Git và Github
[Đồ án môn học] - Đề tài: Tìm hiểu Git và GithubMatt Colonel
 
Phương pháp phát triển phần mềm: Truyền thống và Agile
Phương pháp phát triển phần mềm: Truyền thống và AgilePhương pháp phát triển phần mềm: Truyền thống và Agile
Phương pháp phát triển phần mềm: Truyền thống và AgileVu Hung Nguyen
 
Triển khai wsus windows server update services
Triển khai wsus  windows server update servicesTriển khai wsus  windows server update services
Triển khai wsus windows server update serviceslaonap166
 
Báo cáo thực tập (slide power point)
Báo cáo thực tập (slide power point)Báo cáo thực tập (slide power point)
Báo cáo thực tập (slide power point)Hai Te
 
Hướng dẫn chuyển Revit sang tiếng Việt
Hướng dẫn chuyển Revit sang tiếng ViệtHướng dẫn chuyển Revit sang tiếng Việt
Hướng dẫn chuyển Revit sang tiếng ViệtHuytraining
 

What's hot (20)

Nghiên cứu tình hình viêm phổi liên quan thở máy tại khoa hồi sức tích cực bệ...
Nghiên cứu tình hình viêm phổi liên quan thở máy tại khoa hồi sức tích cực bệ...Nghiên cứu tình hình viêm phổi liên quan thở máy tại khoa hồi sức tích cực bệ...
Nghiên cứu tình hình viêm phổi liên quan thở máy tại khoa hồi sức tích cực bệ...
 
Báo cáo thực tập tốt nghiệp
Báo cáo thực tập tốt nghiệpBáo cáo thực tập tốt nghiệp
Báo cáo thực tập tốt nghiệp
 
Giáo trình cơ bản NX11
Giáo trình cơ bản NX11Giáo trình cơ bản NX11
Giáo trình cơ bản NX11
 
Tóm tắt lệnh Ubuntu
Tóm tắt lệnh UbuntuTóm tắt lệnh Ubuntu
Tóm tắt lệnh Ubuntu
 
CẬP NHẬT NHIỄM KHUẨN HUYẾT
CẬP NHẬT NHIỄM KHUẨN HUYẾTCẬP NHẬT NHIỄM KHUẨN HUYẾT
CẬP NHẬT NHIỄM KHUẨN HUYẾT
 
DISC ppt
DISC pptDISC ppt
DISC ppt
 
Thiết Kế Giao Diện Người dùng
Thiết Kế Giao Diện Người dùngThiết Kế Giao Diện Người dùng
Thiết Kế Giao Diện Người dùng
 
Dự Đoán Lỗ Hổng Phần Mềm Dựa Trên Kỹ Thuật Khai Phá Dữ Liệu _08300812092019
Dự Đoán Lỗ Hổng Phần Mềm Dựa Trên Kỹ Thuật Khai Phá Dữ Liệu _08300812092019Dự Đoán Lỗ Hổng Phần Mềm Dựa Trên Kỹ Thuật Khai Phá Dữ Liệu _08300812092019
Dự Đoán Lỗ Hổng Phần Mềm Dựa Trên Kỹ Thuật Khai Phá Dữ Liệu _08300812092019
 
Đề tài: Hệ thống phát hiện cảnh báo nguy cơ tấn công mạng
Đề tài: Hệ thống phát hiện cảnh báo nguy cơ tấn công mạngĐề tài: Hệ thống phát hiện cảnh báo nguy cơ tấn công mạng
Đề tài: Hệ thống phát hiện cảnh báo nguy cơ tấn công mạng
 
Triển khai nps network policy server trên windows server 2008
Triển khai nps network policy server trên windows server 2008Triển khai nps network policy server trên windows server 2008
Triển khai nps network policy server trên windows server 2008
 
[Đồ án môn học] - Đề tài: Tìm hiểu Git và Github
[Đồ án môn học] - Đề tài: Tìm hiểu Git và Github[Đồ án môn học] - Đề tài: Tìm hiểu Git và Github
[Đồ án môn học] - Đề tài: Tìm hiểu Git và Github
 
Phương pháp phát triển phần mềm: Truyền thống và Agile
Phương pháp phát triển phần mềm: Truyền thống và AgilePhương pháp phát triển phần mềm: Truyền thống và Agile
Phương pháp phát triển phần mềm: Truyền thống và Agile
 
Triển khai wsus windows server update services
Triển khai wsus  windows server update servicesTriển khai wsus  windows server update services
Triển khai wsus windows server update services
 
Đề tài: Ứng dụng giải trí trên thiết bị di động Android, HOt, 9đ
Đề tài: Ứng dụng giải trí trên thiết bị di động Android, HOt, 9đĐề tài: Ứng dụng giải trí trên thiết bị di động Android, HOt, 9đ
Đề tài: Ứng dụng giải trí trên thiết bị di động Android, HOt, 9đ
 
Báo cáo thực tập (slide power point)
Báo cáo thực tập (slide power point)Báo cáo thực tập (slide power point)
Báo cáo thực tập (slide power point)
 
Đề tài: Xây dựng hệ thống Chatbots tự động, HAY, 9đ
Đề tài: Xây dựng hệ thống Chatbots tự động, HAY, 9đĐề tài: Xây dựng hệ thống Chatbots tự động, HAY, 9đ
Đề tài: Xây dựng hệ thống Chatbots tự động, HAY, 9đ
 
Báo Cáo Thực Tập Bảo Mật Trong Hệ Thống Mạng Không Dây.doc
Báo Cáo Thực Tập Bảo Mật Trong Hệ Thống Mạng Không Dây.docBáo Cáo Thực Tập Bảo Mật Trong Hệ Thống Mạng Không Dây.doc
Báo Cáo Thực Tập Bảo Mật Trong Hệ Thống Mạng Không Dây.doc
 
Hướng dẫn chuyển Revit sang tiếng Việt
Hướng dẫn chuyển Revit sang tiếng ViệtHướng dẫn chuyển Revit sang tiếng Việt
Hướng dẫn chuyển Revit sang tiếng Việt
 
Đề tài: Hệ thống giám sát mạng dựa trên phần mềm Zabbix, 9đ
Đề tài: Hệ thống giám sát mạng dựa trên phần mềm Zabbix, 9đĐề tài: Hệ thống giám sát mạng dựa trên phần mềm Zabbix, 9đ
Đề tài: Hệ thống giám sát mạng dựa trên phần mềm Zabbix, 9đ
 
Dacs snort
Dacs snortDacs snort
Dacs snort
 

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

Devexpress cho asp.net
Devexpress cho asp.netDevexpress cho asp.net
Devexpress cho asp.netthichxoidau
 
Tim hieugooglecode tortoisesvn
Tim hieugooglecode tortoisesvnTim hieugooglecode tortoisesvn
Tim hieugooglecode tortoisesvnKhong Van Nhat
 
Part 33 hacking - windows server update service - wsus -www.key4_vip.info
Part 33   hacking - windows server update service - wsus -www.key4_vip.infoPart 33   hacking - windows server update service - wsus -www.key4_vip.info
Part 33 hacking - windows server update service - wsus -www.key4_vip.infolaonap166
 
Bao cao thuc tap tuan 1 Athena Tran Dang Khoa
Bao cao thuc tap tuan 1 Athena Tran Dang KhoaBao cao thuc tap tuan 1 Athena Tran Dang Khoa
Bao cao thuc tap tuan 1 Athena Tran Dang KhoaÂu Dương Bình
 
Tìm Hiểu Giải Pháp Ảo Hóa Mã Nguồn Mở KVM Và Triển Khai Thử Nghiệm
Tìm Hiểu Giải Pháp Ảo Hóa Mã Nguồn Mở KVM Và Triển Khai Thử Nghiệm Tìm Hiểu Giải Pháp Ảo Hóa Mã Nguồn Mở KVM Và Triển Khai Thử Nghiệm
Tìm Hiểu Giải Pháp Ảo Hóa Mã Nguồn Mở KVM Và Triển Khai Thử Nghiệm nataliej4
 
Báo cáo thực tập doanh nghiệp-Athena
Báo cáo thực tập doanh nghiệp-AthenaBáo cáo thực tập doanh nghiệp-Athena
Báo cáo thực tập doanh nghiệp-Athenaquocluong
 
Báo cáo thực tập hàng tuần
Báo cáo thực tập hàng tuầnBáo cáo thực tập hàng tuần
Báo cáo thực tập hàng tuầnlan huynh
 
Nguyễn Đằng Vân_Báo Cáo Giữa Kỳ
Nguyễn Đằng Vân_Báo Cáo Giữa KỳNguyễn Đằng Vân_Báo Cáo Giữa Kỳ
Nguyễn Đằng Vân_Báo Cáo Giữa KỳNguyễn Vân
 
Giao_trinh_OK.doc
Giao_trinh_OK.docGiao_trinh_OK.doc
Giao_trinh_OK.doccanh071179
 
Hack android dùng metasploit cài trên VPS
Hack android dùng metasploit cài trên VPSHack android dùng metasploit cài trên VPS
Hack android dùng metasploit cài trên VPSLê Lãnh
 
ITLC Hanoi - Triển khai ceph hướng tới Cloud Storage và hỗ trợ OpenStack - du...
ITLC Hanoi - Triển khai ceph hướng tới Cloud Storage và hỗ trợ OpenStack - du...ITLC Hanoi - Triển khai ceph hướng tới Cloud Storage và hỗ trợ OpenStack - du...
ITLC Hanoi - Triển khai ceph hướng tới Cloud Storage và hỗ trợ OpenStack - du...Le Cuong
 
template magento
template magentotemplate magento
template magentodvms
 
Mai kim thi bao cao thuc tap tuan 1
Mai kim thi   bao cao thuc tap tuan 1Mai kim thi   bao cao thuc tap tuan 1
Mai kim thi bao cao thuc tap tuan 1Tehichan Mai
 
Báo cáo thực tập Tuần 1
Báo cáo thực tập Tuần 1Báo cáo thực tập Tuần 1
Báo cáo thực tập Tuần 1Nat Galacticos
 
Bao cao-cloud-linux-hosting
Bao cao-cloud-linux-hostingBao cao-cloud-linux-hosting
Bao cao-cloud-linux-hostinglaonap166
 

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

Devexpress cho asp.net
Devexpress cho asp.netDevexpress cho asp.net
Devexpress cho asp.net
 
Tim hieugooglecode tortoisesvn
Tim hieugooglecode tortoisesvnTim hieugooglecode tortoisesvn
Tim hieugooglecode tortoisesvn
 
Bai bao cao 4
Bai bao cao 4Bai bao cao 4
Bai bao cao 4
 
Part 33 hacking - windows server update service - wsus -www.key4_vip.info
Part 33   hacking - windows server update service - wsus -www.key4_vip.infoPart 33   hacking - windows server update service - wsus -www.key4_vip.info
Part 33 hacking - windows server update service - wsus -www.key4_vip.info
 
Backup.pptx
Backup.pptxBackup.pptx
Backup.pptx
 
Bao cao thuc tap tuan 1 Athena Tran Dang Khoa
Bao cao thuc tap tuan 1 Athena Tran Dang KhoaBao cao thuc tap tuan 1 Athena Tran Dang Khoa
Bao cao thuc tap tuan 1 Athena Tran Dang Khoa
 
Tìm Hiểu Giải Pháp Ảo Hóa Mã Nguồn Mở KVM Và Triển Khai Thử Nghiệm
Tìm Hiểu Giải Pháp Ảo Hóa Mã Nguồn Mở KVM Và Triển Khai Thử Nghiệm Tìm Hiểu Giải Pháp Ảo Hóa Mã Nguồn Mở KVM Và Triển Khai Thử Nghiệm
Tìm Hiểu Giải Pháp Ảo Hóa Mã Nguồn Mở KVM Và Triển Khai Thử Nghiệm
 
Báo cáo thực tập doanh nghiệp-Athena
Báo cáo thực tập doanh nghiệp-AthenaBáo cáo thực tập doanh nghiệp-Athena
Báo cáo thực tập doanh nghiệp-Athena
 
Tuan5
Tuan5Tuan5
Tuan5
 
Nguyen Dang Van
Nguyen Dang VanNguyen Dang Van
Nguyen Dang Van
 
Báo cáo thực tập hàng tuần
Báo cáo thực tập hàng tuầnBáo cáo thực tập hàng tuần
Báo cáo thực tập hàng tuần
 
Nguyễn Đằng Vân_Báo Cáo Giữa Kỳ
Nguyễn Đằng Vân_Báo Cáo Giữa KỳNguyễn Đằng Vân_Báo Cáo Giữa Kỳ
Nguyễn Đằng Vân_Báo Cáo Giữa Kỳ
 
TỰ HỌC LPI 2
TỰ HỌC LPI 2TỰ HỌC LPI 2
TỰ HỌC LPI 2
 
Giao_trinh_OK.doc
Giao_trinh_OK.docGiao_trinh_OK.doc
Giao_trinh_OK.doc
 
Hack android dùng metasploit cài trên VPS
Hack android dùng metasploit cài trên VPSHack android dùng metasploit cài trên VPS
Hack android dùng metasploit cài trên VPS
 
ITLC Hanoi - Triển khai ceph hướng tới Cloud Storage và hỗ trợ OpenStack - du...
ITLC Hanoi - Triển khai ceph hướng tới Cloud Storage và hỗ trợ OpenStack - du...ITLC Hanoi - Triển khai ceph hướng tới Cloud Storage và hỗ trợ OpenStack - du...
ITLC Hanoi - Triển khai ceph hướng tới Cloud Storage và hỗ trợ OpenStack - du...
 
template magento
template magentotemplate magento
template magento
 
Mai kim thi bao cao thuc tap tuan 1
Mai kim thi   bao cao thuc tap tuan 1Mai kim thi   bao cao thuc tap tuan 1
Mai kim thi bao cao thuc tap tuan 1
 
Báo cáo thực tập Tuần 1
Báo cáo thực tập Tuần 1Báo cáo thực tập Tuần 1
Báo cáo thực tập Tuần 1
 
Bao cao-cloud-linux-hosting
Bao cao-cloud-linux-hostingBao cao-cloud-linux-hosting
Bao cao-cloud-linux-hosting
 

More from dvms

S-TMS | Smart Transportation Management System
S-TMS | Smart Transportation Management SystemS-TMS | Smart Transportation Management System
S-TMS | Smart Transportation Management Systemdvms
 
SmartApp for Sale
SmartApp for SaleSmartApp for Sale
SmartApp for Saledvms
 
DVMS Easy Order app đặt món trên smartphone
DVMS Easy Order app đặt món trên smartphoneDVMS Easy Order app đặt món trên smartphone
DVMS Easy Order app đặt món trên smartphonedvms
 
DVMS schat giải pháp chăm sóc và tư vấn khách hàng tuyệt vời
DVMS schat giải pháp chăm sóc và tư vấn khách hàng tuyệt vờiDVMS schat giải pháp chăm sóc và tư vấn khách hàng tuyệt vời
DVMS schat giải pháp chăm sóc và tư vấn khách hàng tuyệt vờidvms
 
Quy trình làm việc với khách hàng của DVMS
Quy trình làm việc với khách hàng của DVMSQuy trình làm việc với khách hàng của DVMS
Quy trình làm việc với khách hàng của DVMSdvms
 
NỘI QUY CTY DVMS
NỘI QUY CTY DVMSNỘI QUY CTY DVMS
NỘI QUY CTY DVMSdvms
 
BỘ QUY TẮC ỨNG XỬ CỦA ĐỐI TÁC DVMS
BỘ QUY TẮC ỨNG XỬ CỦA ĐỐI TÁC DVMSBỘ QUY TẮC ỨNG XỬ CỦA ĐỐI TÁC DVMS
BỘ QUY TẮC ỨNG XỬ CỦA ĐỐI TÁC DVMSdvms
 
Hệ thống đánh giá đại lý, chi nhánh, cửa hàng
Hệ thống đánh giá đại lý, chi nhánh, cửa hàngHệ thống đánh giá đại lý, chi nhánh, cửa hàng
Hệ thống đánh giá đại lý, chi nhánh, cửa hàngdvms
 
mobile catalogue, mobile brochure
mobile catalogue, mobile brochuremobile catalogue, mobile brochure
mobile catalogue, mobile brochuredvms
 
STracking
STrackingSTracking
STrackingdvms
 
TÀI LIỆU HƯỚNG DẪN VIẾT MODULE CHO SUGARCRM
TÀI LIỆU HƯỚNG DẪN VIẾT MODULE CHO SUGARCRMTÀI LIỆU HƯỚNG DẪN VIẾT MODULE CHO SUGARCRM
TÀI LIỆU HƯỚNG DẪN VIẾT MODULE CHO SUGARCRMdvms
 
TÀI LIỆU HƯỚNG VIẾT MODULE VÀ WEBSERVICE CHO MAGENTO 1.7
TÀI LIỆU HƯỚNG VIẾT MODULE VÀ WEBSERVICE CHO MAGENTO 1.7TÀI LIỆU HƯỚNG VIẾT MODULE VÀ WEBSERVICE CHO MAGENTO 1.7
TÀI LIỆU HƯỚNG VIẾT MODULE VÀ WEBSERVICE CHO MAGENTO 1.7dvms
 
TÀI LIỆU HƯỚNG DẪN ĐÓNG GÓI MODULE MAGENTO 1.7
TÀI LIỆU HƯỚNG DẪN ĐÓNG GÓI MODULE  MAGENTO 1.7TÀI LIỆU HƯỚNG DẪN ĐÓNG GÓI MODULE  MAGENTO 1.7
TÀI LIỆU HƯỚNG DẪN ĐÓNG GÓI MODULE MAGENTO 1.7dvms
 
admin magento user guide
admin magento user guideadmin magento user guide
admin magento user guidedvms
 
tao module joomla 1.5
tao module  joomla 1.5tao module  joomla 1.5
tao module joomla 1.5dvms
 
DVMS tạo module joomla 2.5
DVMS tạo module joomla 2.5DVMS tạo module joomla 2.5
DVMS tạo module joomla 2.5dvms
 
Quản trị joomla toàn tập
Quản trị joomla toàn tậpQuản trị joomla toàn tập
Quản trị joomla toàn tậpdvms
 

More from dvms (17)

S-TMS | Smart Transportation Management System
S-TMS | Smart Transportation Management SystemS-TMS | Smart Transportation Management System
S-TMS | Smart Transportation Management System
 
SmartApp for Sale
SmartApp for SaleSmartApp for Sale
SmartApp for Sale
 
DVMS Easy Order app đặt món trên smartphone
DVMS Easy Order app đặt món trên smartphoneDVMS Easy Order app đặt món trên smartphone
DVMS Easy Order app đặt món trên smartphone
 
DVMS schat giải pháp chăm sóc và tư vấn khách hàng tuyệt vời
DVMS schat giải pháp chăm sóc và tư vấn khách hàng tuyệt vờiDVMS schat giải pháp chăm sóc và tư vấn khách hàng tuyệt vời
DVMS schat giải pháp chăm sóc và tư vấn khách hàng tuyệt vời
 
Quy trình làm việc với khách hàng của DVMS
Quy trình làm việc với khách hàng của DVMSQuy trình làm việc với khách hàng của DVMS
Quy trình làm việc với khách hàng của DVMS
 
NỘI QUY CTY DVMS
NỘI QUY CTY DVMSNỘI QUY CTY DVMS
NỘI QUY CTY DVMS
 
BỘ QUY TẮC ỨNG XỬ CỦA ĐỐI TÁC DVMS
BỘ QUY TẮC ỨNG XỬ CỦA ĐỐI TÁC DVMSBỘ QUY TẮC ỨNG XỬ CỦA ĐỐI TÁC DVMS
BỘ QUY TẮC ỨNG XỬ CỦA ĐỐI TÁC DVMS
 
Hệ thống đánh giá đại lý, chi nhánh, cửa hàng
Hệ thống đánh giá đại lý, chi nhánh, cửa hàngHệ thống đánh giá đại lý, chi nhánh, cửa hàng
Hệ thống đánh giá đại lý, chi nhánh, cửa hàng
 
mobile catalogue, mobile brochure
mobile catalogue, mobile brochuremobile catalogue, mobile brochure
mobile catalogue, mobile brochure
 
STracking
STrackingSTracking
STracking
 
TÀI LIỆU HƯỚNG DẪN VIẾT MODULE CHO SUGARCRM
TÀI LIỆU HƯỚNG DẪN VIẾT MODULE CHO SUGARCRMTÀI LIỆU HƯỚNG DẪN VIẾT MODULE CHO SUGARCRM
TÀI LIỆU HƯỚNG DẪN VIẾT MODULE CHO SUGARCRM
 
TÀI LIỆU HƯỚNG VIẾT MODULE VÀ WEBSERVICE CHO MAGENTO 1.7
TÀI LIỆU HƯỚNG VIẾT MODULE VÀ WEBSERVICE CHO MAGENTO 1.7TÀI LIỆU HƯỚNG VIẾT MODULE VÀ WEBSERVICE CHO MAGENTO 1.7
TÀI LIỆU HƯỚNG VIẾT MODULE VÀ WEBSERVICE CHO MAGENTO 1.7
 
TÀI LIỆU HƯỚNG DẪN ĐÓNG GÓI MODULE MAGENTO 1.7
TÀI LIỆU HƯỚNG DẪN ĐÓNG GÓI MODULE  MAGENTO 1.7TÀI LIỆU HƯỚNG DẪN ĐÓNG GÓI MODULE  MAGENTO 1.7
TÀI LIỆU HƯỚNG DẪN ĐÓNG GÓI MODULE MAGENTO 1.7
 
admin magento user guide
admin magento user guideadmin magento user guide
admin magento user guide
 
tao module joomla 1.5
tao module  joomla 1.5tao module  joomla 1.5
tao module joomla 1.5
 
DVMS tạo module joomla 2.5
DVMS tạo module joomla 2.5DVMS tạo module joomla 2.5
DVMS tạo module joomla 2.5
 
Quản trị joomla toàn tập
Quản trị joomla toàn tậpQuản trị joomla toàn tập
Quản trị joomla toàn tập
 

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

  • 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. 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. 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. 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. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 5 © DVMS
  • 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. 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. 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. 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. 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. 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. 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. DVMS www.dvms.vn | info@dvms.vn +84836028937 | +84835531145 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam 13 © DVMS
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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