Chuyển đến nội dung chính

Tạo SVN Server & import project lên svn


Hướng dẫn tạo svn repository, cấu hình apache & đẩy dự án lên SVN


Đối với một vài dự án nhỏ bạn không được cấp svn, bạn không thể sử dụng những dịch vụ svn cung cấp miễn phí: Google code, bitbucket,... lúc đó điều đầu tiên nảy sinh trong đầu các bạn là cài đặt svn server trên máy mình để tiện sử dụng.

Điều kiện, máy bạn cần cài đặt apache & svn
- Trên Windows: các bạn có thể cài Xampp, wampserver hoặc apache riêng & TortoiseSVN
- Trên Mac OSX: apache & svn đã có mặc định

Ở đây mình hướng dẫn sử dụng trên hệ điều hành MacOSX ( do mình sử dụng máy Mac)

Bước 1. Tạo thư mục SVN. Để có thể add nhiều project vào svn, các bạn nên tạo một thư mục cha ví dụ: svn. Ở đây mình tạo thư mục svn với đường dẫn /Data/svn

Bước 2. Tạo file /Data/svn/.svn-policy-file
[groups]
team1 = longhoanggiang, giangnh

[/]
* =

[symfony2jobeet:/]
@team1 = rw
ngongocquynh = r
* =
 
Dấu * ở đây có nghĩa là tất cả anonymous user (ẩn danh) sẽ chỉ có quyền đọc (read). User longhoanggiang sẽ có quyền đọc & ghi đối với repository symfony2jobeet (cách tạo repository các bạn xem phía dưới)

Bước 3. Tạo file /Data/svn/.svn-auth-file

Gõ lệnh: htpasswd -cs /Data/svn/.svn-auth-file longhoanggiang

Tiếp đó bạn sẽ nhập mật khẩu cho user longhoanggiang
Bước này để tạo user longhoanggiang & đặt mật khẩu cho user longhoanggiang

Để tạo thêm user các bạn gõ lệnh: htpasswd -s /Data/svn/.svn-auth-file nguoidung2

Muốn add thêm người dùng 2 vào repository thì các bạn thêm nguoidung2 = rw vào trong file /Data/svn/.svn-policy-file

Sau khi đã tạo xong 2 file .svn-policy-file & .svn-auth-file, ta cấu hình apache.

Bước 4. Copy 2 file mod_authz_svn.so & mod_dav_svn.so vào thư mục /usr/libexec
Mặc định các module của apache sẽ được lưu trong thư mục /usr/libexec, do đó ta copy 2 file mod_authz_svn.so & mod_dav_svn.so từ thư mục libexec khi cài svn. Trong trường hợp của mình, 2 file trên nằm trong thư mục /usr/local/libexec.

Bước 5. Edit file cấu hình httpd.conf nằm trong đường dẫn /etc/apache2/httpd.conf
  • Bạn chắc chắn đã kích hoạt module mod_dav.so & mod_dav_fs.so
  • Bạn load thêm module mod_authz_svn.so & mod_dav_svn.so. Bạn thêm 2 dòng sau vào dưới đoạn LoadModule:
            LoadModule dav_svn_module libexec/apache2/mod_dav_svn.so
     LoadModule authz_svn_module libexec/apache2/mod_authz_svn.so


Bước 6. Thêm cấu hình vào file httpd.conf để apache nhận thư mục /Data/svn
Thêm vào dưới cùng của file httpd.conf đoạn cấu hình sau:
<Location /svn>
  DAV svn
  SVNParentPath /Data/svn
 
  AuthName "SVN Repository"
  AuthType Basic
  AuthUserFile /Data/svn/.svn-auth-file
  Require valid-user
               AuthzSVNAccessFile /Data/svn/.svn-policy-file
</Location>
Bước 7. Tạo repository trong thư mục /Data/svn
Gõ lệnh: svnadmin create /Data/svn/symfony2jobeet
Gán quyền cho user apache: sudo chown -R _www:_www /Data/svn/symfony2jobeet

Bước 8. Copy project của bạn sang một thư mục khác để chuẩn bị import lên svn

Ở đây mình tạo thư mục svn-import/TRUNK để chứa project của mình

cp -R /var/www/symfony2jobeet/* /var/www/svn-import/TRUNK

svn import -m 'Initial import' /var/www/svn-import http://localhost/svn/symfony2jobeet

Tiến hành nhập username & password để import project lên svn server

Bước 9. Checkout project trên svn về

svn co http://localhost/svn/symfony2jobeet /var/www/symfony2jobeet

OK. Bạn đã setup xong svn server & đẩy dự án lên svn

Bài viết của Long Hoàng Giang
Vui lòng giữ nguyên tác giả nếu bạn copy bài viết này

Tham Khảo:

https://wiki.archlinux.org/index.php/Subversion_Setup
http://svn.spears.at


Tags: cai dat svn server, cau hinh svn repository, setup svn repository & apache


























Nhận xét

Bài đăng phổ biến từ blog này

unicode with python

str = "Quan h\u1ec7 t\u00ecnh d\u1ee5c v\u00e0 t\u1eadp t\u00ecnh d\u1ee5c c\u00f3 th\u1ec3 g\u00e2y \u0111au tim \u1edf m\u1ed9t s\u1ed1 ng\u01b0\u1eddi n\u1ebfu h\u1ecd kh\u00f4ng th\u01b0\u1eddng xuy\u00ean th\u1ef1c hi\u1ec7n hai ho\u1ea1t \u0111\u1ed9ng \u0111\u00f3" hic vo duoc cai chuoi nay ma ko biet lam the nao ca?? print u'\u1ec7' duoc chu "ệ" print len(u'\u1ec7') --> 1 print len(unicode('\u1ec7')) --> 6 vay la convert chuoi thanh unicode the nay moi ky tu lai la 1 ky tu unicode (1Byte) thu cheat the nay xem sao nhi??  code = '\u1ec7' print eval("u'{0}'".format(code)) --> ệ  su dung regular expression ta se print duoc chuoi dau bai ve dang tieng viet bt print re.sub(r"(\\u[a-z0-9]{4})", lambda m: eval("u'{0}'".format(m.group(1))), str) --> Quan hệ tình dục và tập tình dục có thể gây đau tim ở một số người nếu họ không thường xuyên thực hiện hai hoạ...