Professional Documents
Culture Documents
Dvmstechhuongdansudungsubversionsvn 170616084928 PDF
Dvmstechhuongdansudungsubversionsvn 170616084928 PDF
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
Số: 04072012-QT/TECH-SVN 150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
Mục lục
1. Giới thiệu. ........................................................................................................................................ 3
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
1 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
3. Sử dụng SVN trên máy trạm dùng Linux hoặc Mac .................................................................................. 37
4. Tự động commit ....................................................................................................................................... 38
2 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
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.
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://
+ 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.
3 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
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.
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é.
*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.
4 © DVMS
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
- Đế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.
7 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
8 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
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
9 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
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ó.
10 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
- 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:
SVN
Forder Forder
Project1 Project2 ...
dùng chung dùng chung
SVN
... ...
11 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
SVN
Repository
P.Giải P.Kinh
...
pháp doanh
... ...
- 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.
12 © DVMS
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
- 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.
14 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
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.
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.
15 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
*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
16 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
Lựa chọn quyền hạn của User hoặc nhóm user => Chọn Apply => Ok để thực thi.
17 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
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ự.
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
18 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
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.
19 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
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 .
20 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
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
21 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
22 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
23 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
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)
24 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
Ok....và ngồi đợi ....... thế là xong ...quá đơn giản ^-^
25 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
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ũ.
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 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.
26 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
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
27 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
28 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
29 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
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 ).
30 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
Bước 1: Mở cửa sổ Setting của Tortoise SVN, rồi mò đến cấu hình như hình sau:
31 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
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.
- Centos 5 hoặc 6
- Đã cài HTTPD (Apache)
Cài đặt:
Cấu hình:
vim /etc/httpd/conf/httpd.conf
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é )
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
32 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
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)
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ú ý:
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
33 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
[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!
chkconfig httpd on
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ả.
34 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
svnserve -d -r /path/to/svn/repo/
Checkout
a2enmod ssl
- Cấu hình lại cổng kết nối cho giao thức SSL
Listen 80
<IfModule mod_ssl.c>
Listen 443
</IfModule>
apache2-ssl-certificate
35 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
NameVirtualHost *
VirtualHost *
thành
NameVirtualHost *:443
VirtualHost *:443
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
<Location /svn>
DAV svn
SVNPath /srv/svn
36 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
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
(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 = rw
@users = r
*=
svn import [đường dẫn dự án ở máy mình] [link dự án trên server] –m [" ghi chú"]
37 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
Update SVN
svn update [link svn] [ đường dẫn thư mục dự án ở máy mình]
Commit
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
38 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
# 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
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
39 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
40 © DVMS
DVMS
www.dvms.vn | info@dvms.vn
+84836028937 | +84835531145
150/30 Truc Street, 13 Ward, Binh Thanh District,HCM,Viet Nam
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
41 © DVMS