Archive

Posts Tagged ‘SVN’

SVN#04: Edit log message–> Repository has not been enabled to accept revision propchange

Hôm nay, vào show log của dự án (Click phải lên dự án –> TortoiseSVN –> Show Log). Xem lại log thì thấy một số cái message không hợp lý. Tính sửa lại, click phải lên revision dự định sửa, chọn Edit log message. Sau khi sửa xong, nhấn OK, thì nhận được lỗi từ TortoiseSVN là: “Repository has not been enabled to accept revision propchange; ask the administrator to create pre-revprop-change hook” (hình dưới).

image

Giải quyết lỗi trên như thế nào: google thôi và tôi đã tìm ra cách giải quyết như sau:

1. Truy cập lên server, mở thư mục hooks trong Repository ra.
2. Trong thư mục này, tạo file pre-revprop-change.bat.
3. Mở file trên bằng notepad và gõ nội dung sau vào file:

REM Only allow log messages to be changed
if "%4" == "svn:log" exit 0
echo Property "%4" cannot be changed >&2
exit1

Tham khảo:
1. Matt Refghi’s Blog
2. TortoiseSVN Document

Categories: Source Control Tags: ,

asSVN#1: Công cụ đổi mật khẩu user từ client

Đặt vấn đề

Rằng thì là hiện đang triển khai Subversion cho công ty với khoảng 30 user. Ban đầu, khi khởi tạo user thì đặt mật khẩu tất cả là 123. Thế là anh em nháo nhào hỏi bây giờ làm sao đổi mật khẩu còn mình thì nháo nhào google.

Hehe, hôm trước lại chót khoe với anh em là SVN bảo mật tốt hơn MS VSS (vì MS VSS thì phải share thư mục chứa database còn SVN thì không). Thế nhưng, bảo mật tốt mà bắt anh em dùng mật khẩu như nhau 123 thì có vẻ không ổng, không lẽ ai muốn đổi mật khẩu lại phải liên hệ với bác Admin, vô sửa file conf/Passwd sao? Vì file chứa thông tin user nó lại nằm trên server, muốn sửa thì phải sửa trực tiếp. Cũng đã google rồi nhưng mà vẫn chưa thấy cái tool nào cho phép đổi pass từ client (có thể mình chưa tìm ra). Với yêu cầu bức thiết đó, sau mấy ngày cặm cụi mình cũng cho ra phiên bản đầu tiên của phần mềm asSVN.

Xong phần đặt vấn đề, sau đây giới thiệu sơ qua về em nó tí.

asSVN sử dụng công nghệ lập trình mạng với gói Socket trong .NET Framework 2.0. Nó có 2 phần, phần dịch vụ chạy trên Server (asSvn Service) và phần chương trình chạy ở Client (asSVN Client).

Hiện tại, chương trình mới chỉ có 1 chức năng duy nhất là Change Password. Nhưng tham vọng của mình thì không chỉ có thể và cũng đã làm tương đối (chính vì lý do đó mà đặt tên là asSVN chứ không phải là asSVNChangePassword). Tham vọng là cho phép hiển thị User, Group, Authentication, cấu trúc cây thư mục và các thao tác cơ bản liên quan đến quản lý Authentication; thêm, xóa, sửa, phân quyền user, group …

– Đây là cái màn hình của chức năng ChangePassword (phiên bản đầu thì mới có thể).

image

Hướng dẫn cài đặt và sử dụng

0. Yêu cầu: Máy chủ và máy trạm phải cài .Net Framework 2.0 trở lên, download tại http://www.microsoft.com/downloads/en/details.aspx?familyid=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&displaylang=en

1. Download file asSVN.zip về và giải nén ra, được 2 file asSVNService.exe và asSVNClient.exe.

Download tại địa chỉ: http://www.mediafire.com/?mdcjb7sff3m8j3t

2. Khởi tạo dịch vụ trên máy chủ

– Chép file asSVNService.exe lên máy chủ (ví dụ ổ C:/asSVN/)

– Vào Start->Run gõ CMD

– Trên màn hình Command line, sử dụng lệnh SC để tạo dịch vụ.

Ví dụ: sc create asSVNService binpath= “C:/asSVN/asSVNService.exe 10000 D:/MyRepo/conf/passwd” displayname= “asSVN Service” depend= tcpip start= auto

    + asSVNService.exe nhận vào 2 tham số là số hiệu Port để listen client (ví dụ trên là 10000) và đường dẫn file lưu thông tin user của SVN (ví dụ trên là D:/MyRepo/conf/passwd).
    + Chú ý khoảng trắng sau các dấu = của lệnh sc

– Sau khi tạo xong thì chạy service lên bằng lệnh: sc start asSVNService

3. Chạy chương trình trên máy client, kết nối và change password

– Chạy chương trình asSVNClient.exe tại máy client.

– Nhập thông tin kết nối:
    + Server: Tên hoặc địa chỉ IP của máy chủ
    + Port: Số hiện port mà Server đang listen (là tham số đã set khi tạo dịch vụ trên máy chủ)
    + Sau đó nhấn Connect. Nếu thành công, chương trình sẽ có thông báo đồng thời kế bên nút Connect hiển thị Connected.

– Thay đổi mật khẩu:
    + Nhập các thông tin của người dùng bao gồm :
        * User name: tên đăng nhập vào SVN
        * Old Password: Mật khẩu đăng nhập hiện tại vào SVN
        * New Password: Mật khẩu mới sẽ đổi
        * Confirm: Xác nhận lại mật khẩu mới
    + Sau khi nhập xong nhấn nút Change. Chương trình sẽ thực hiện đổi mật khẩu. Sau đó đăng nhập vào SVN bằng mật khẩu mới để kiểm tra kết quả.


Hướng phát triển:

Đây là cái main form của cái tham vọng màmình đã nói (các chức năng thì cơ bản, giờ còn chỗ quản lý phân quyền nữa là OK).

image

Subversion(SVN)#03: Authentication

Xem thêm các bài về SVN tại: https://trinhvanchung.wordpress.com/category/th%E1%BB%A7-thu%E1%BA%ADt-tin-h%E1%BB%8Dc/source-control/

Trong các bài trước, tôi đã hướng dẫn các bạn cài đặt, cấu hình đơn giản, tạo repository, sử dụng một số lệnh cơ bản của giao thức SVN để thao tác với Repository.

Vấn đề đặt ra là trong trường hợp dự án có nhiều thành viên tham gia, có nhiều team cùng tham gia dự án và role của mỗi team hoặc mỗi thành viên là khác nhau trên từng dự án, thậm chí trên từng thư mục con của dự án.

Vậy làm sao để phân quyền truy cập cho các thành viên, các team đó trong SVN.

Với VisualSVN, mọi việc rất dễ dàng, tuy nhiên trong bài này tôi không có ý định hướng dẫn các bạn tạo user và cấu hình xác thực trong VisualSVN. Trong phạm vi bài này, tôi sẽ giới thiệu với các bạn cách cấu hình Authentication cho các user, các team truy cập vào Repository và các dự án bằng text file.

Để thực hiện việc phân quyền trong SVN, các bạn sử dụng file authz trong thư mục conf của repository. Để chỉ định việc kiểm tra quyền được cấu hình trong file authz, bạn phải mở chỉ thị trong authz-db trong file svnserve.conf ra. Khi đó, bạn có được file svnserve.conf như sau:

[general]
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz

Nào, bây giờ hãy bắt đầu với authz. Để bất đầu hãy mở file authz bằng notepad và xóa trắng nó đi.

– Phân nhóm user

Trong svn, việc phân nhóm user trong file authz được thực hiện trong 1 session, dòng đầu tiên của session này là [groups]. Các dòng tiếp theo của session này là định nghĩa các nhóm tham gia vào dự án (sẽ được phân quyền để truy cập vào repository). Cấu trúc của 1 dòng như sau:

group_name = user_name1, user_name2

Các user name ngăn cách nhau bởi dấu phẩy (,) và hãy chắc chắn rằng các user này đã được tạo trong file passwd.

Ví dụ, bạn tạo ra 2 nhóm tham gia dự án, khi đó session groups sẽ như sau:

[groups]
dev_team = dev1, dev2, dev3
test_team = test1, test2

– Phân quyền cho user hoặc nhóm user

Trước khi phân quyền, bạn cần biết: Trong SVN, quyền truy cập vào 1 thư mục nào đó có 2 mức: read (r)write(w). Việc phân quyền cho user được access vào thư mục ở quyền nào được gán bởi các ký tự đại diện r hoặc w.

Để gán quyền cho các user hoặc group access vào một thư mục nào đó trong repository, bạn hãy tạo ra 1 session với tên session là đường dẫn tới thư mục cần phân quyền [đường dẫn] (trong trường hợp phân quyền truy cập cho repository (thư mục gốc) thì tên session sẽ để trống [/]). Trong 1 file authz có thể có nhiều session phân quyền khác nhau.

Ngay phía dưới tên, các dòng tiếp theo trong session sẽ thể hiện quyền của user hay nhóm.

Ví dụ, tôi phân quyền cho user admin toàn quyền trên toàn repository này thì sử dụng thì sử dụng session [/] như sau:

[/]
admin = rw

Phân quyền cho user1 có toàn quyền trên dự án AP thì như sau:

[/ap]
user1=rw

Phân quyền cho nhóm dev đã tạo ở trên toàn quyền trên thư mục src của dự án AP và nhóm test chỉ có quyền read trên thư mục src này. (chú ý đặt đấu @ trước tên nhóm)

[/ap/src]
@dev=rw
@test=r

Phân quyền cho tất cả mọi người đều được truy cập vào thư mục docs của dự án AP.

[/ap/docs]
*=rw

Kết quả, file authz sẽ như sau:

[groups]
dev=dev1,dev2,dev3
test=test1,test2

[/]
admin=rw

[/ap]
user1=rw

[/ap/src]
@dev=rw
@test=r

[/ap/docs]
*=rw

Bạn hãy thử sử dụng lệnh ls để kiểm tra hiệu lực của quyền read, lệnh mkdir để kiểm tra hiệu lực của lệnh write xem sao nhé. Cách sử dụng cách lệnh thì đã được giới thiệu trong bài trước rồi. https://trinhvanchung.wordpress.com/2010/11/05/subversionsvn02-m%E1%BB%99t-s%E1%BB%91-l%E1%BB%87nh-c%C6%A1-b%E1%BA%A3n/

OK. chúc các bạn thành công.

Categories: Source Control Tags: ,

Subversion(SVN)#02: Một số lệnh cơ bản

Trong bài trước, các bạn đã cài đặt được SVN và làm quen với SVN. Trong bài này, xin giới thiệu với các bạn một số lệnh cơ bản để thao tác với SVN.

Bạn có thể dễ dàng thấy các lệnh được hỗ trợ trong SVN bằng cách trong của sổ Cmd, gõ dòng lệnh sau:

svn help hoặc svn ?

Một số lệnh cơ bản, ý nghĩa và cách sử dụng chúng:

Chú ý: trong cấu trúc các lệnh dưới đây tôi luôn kèm theo các tham số Username và password, tuy nhiên trên thực tế thì có những lệnh không cần, tùy vào cấu hình truy cập (bài sau sẽ nói về vấn đề này). ví dụ, trong file svnserve.conf ở bài trước, chúng ta cấu hình nanon-access = read thì thực chất trong lệnh list ở dưới không cần kèm theo tham số username và password. Tham số username và password thậm chí cũng chỉ cần gõ 1 lần ở lệnh đầu tiên, trong các lệnh tiếp theo svn sẽ tự nhận lại tham số ở lệnh trước đó.

1. Lệnh tạo thư mục mkdir

– Ý nghĩa: Lệnh này sử dụng để tạo thư mục trong repository của bạn. (giống lệnh MD trong Doc command)

– Cấu trúc lệnh:

svn mkdir <đường dẫn thư mục mới tạo> –m <Mô tả về dự án> ––username <username> ––password <password>

Trong trường hợp bạn ko gõ tham số –m, chương trình sẽ hiển thị màn hình để các bạn nhập comment vào (chương trình này được thiết lập trong biến SVN_EDITOR ở bài trước)

– Ví dụ:

+ Tạo dự án mới:

svn mkdir svn://localhost/as –m “Asia standard, a product of asiasoft” ––username admin ––password nimda

+ Tạo thư mục con của dự án mới tạo:

Tạo thư mục chứa Source của dự án

svn mkdir svn://localhost/as/Src –m “Source code store here” ––username admin ––password nimda

Tạo thư mục chứa tài liệu

svn mkdir svn://localhost/as/Docs –m “Documents of project store here” ––username admin ––password nimda

Tạo các thư mục con của thư mục chứa tài liệu

svn mkdir svn://localhost/as/Docs/TechDocs –m “Documents for Technical” ––username admin ––password nimda

svn mkdir svn://localhost/as/Docs/UserDocs –m “Documents for End-User” ––username admin ––password nimda

2. Xóa thư mục delete (del, remove, rm)

– Ý nghĩa: Xóa thư mục (cái này thì giống RD trong dos command)

– Cấu trúc lệnh:

svn delete <đường dẫn tới thư mục cần xóa> ––username <username> ––password <password>

Có thể thay thế lệnh delete bằng del hoặc remove hoặc rm

 

– Ví dụ:

Xóa thư mục Docs

svn delete svn://localhost/as/docs ––username admin ––password nimda

3. Lệnh List (ls)

– Ý nghĩa: Dùng để liệt kê danh sách các thư mục và file bên trong thư mục đang được list (giống DIR trong Dos command)

– Cấu trúc lệnh:

svn list <đường dẫn đến thư mục cần xem danh sách thư mục và file> ––username <username> ––password <password>

– Ví dụ:

Trong ví dụ này, tôi đã thử dùng SVN để liệt kê các thư mục và file bên trong dự án của nhóm Quản lý xây dựng trên google code (tại thời điểm 14h41 ngày 05/11/2010) và nhận được kết quả như sau:

C:\svn-win32-1.5.6\bin>svn ls https://quanlyxaydung.googlecode.com/svn/trunk/code/

NhanVien/
congtrinh/
khachhang/
main/
quanlykho/
quanlyvattu/

Trong ví dụ trên, các bạn có thể thay lệnh list bằng lệnh ls

 

4. Lệnh checkout (co)

– Ý nghĩa: Lệnh này sử dụng để lấy phiên bản mã nguồn mới nhất từ thư mục dự án trên repository về thư mục trên máy trạm.

– Cấu trúc lệnh: 

svn checkout <đường dẫn thư mục trên máy chủ> <đường dẫn thư mục trên máy trạm> ––username <username> ––password  <password>

Các bạn có thể thay thế lệnh checkout ở trên bằng lệnh co.

– Ví dụ:

Trong ví dụ này, tôi sẽ lấy mã nguồn mới nhất từ thư mục Src của dự án AS đã tạo ở trên về thư mục D:/dev/as/src/ trên máy trạm.

svn checkout svn://localhost/as/src d:/dev/as/src ––username admin ––password nimda

Nếu thành công, chương trình sẽ có thông báo:

Checked out revision n. //(n là số phiên bản hiện tại mới nhất)

Trong trường hợp thư mục d:/dev/as/src chưa có, SVN sẽ tự tạo.

Phù, tới đây đã. Tôi sẽ cố gắng viết tiếp để các bạn tham khảo.

Categories: Source Control Tags: ,

Subversion(SVN)#1: Setup, create repository, config, create project, create svn service

image

1. Đặt vấn đề

Kỳ này có tham gia tại trường học phần Công cụ và môi trường Phát triển phần mềm, trong đó có giới thiệu với các bạn công cụ quản lý mã nguồn Subversion.

Rằng thì là chẳng bao giờ dùng SVN nên nhiều khi demo cứ hay quên mấy cái 1 trừ hay 2 trừ.  Viết cái chủ đề này phần để cho các bạn tham khảo phần để tra cứu lại khi cần thiết.

2. Giới thiệu về Subversion

Anh em chịu khó wiki hay nhờ “anh hai google” cho nó rõ nghĩa nhé. Mình chỉ đại khái thôi.

Subversion là một phần mềm cung cấp các chức năng quản lý phiên bản mã nguồn và tài liệu. Hiểu đơn giản nó cũng chỉ là một trình quản lý file, thư mục. Tuy nhiên, nó cao cấp hơn ở chỗ nó cho phép quản lý nhiều phiên bản của cùng 1 file, có thể rollback lại khi có sai sót; quản lý lịch sử sửa đổi; quản lý người dùng . Hỗ trợ giải quyết đụng độ, tranh chấp … và nhiều thứ mà nói thật mình cũng chưa tìm hiểu hết.

Tóm lại, anh em cứ google là ra hết hoặc là vào trang chủ của nó mà nghiên cứu http://subverion.tigris.org

3. Cài đặt SVN

B1. Download và cài đặt.

Download SVN tại: http://subverion.tigris.org (đừng có nói là vào đó xong hổng biết download ở đâu nhé :), còn nếu không biết thật thì vào đây http://sourceforge.net/projects/win32svn/). Sau khi download về máy ta được file svn-win32-3.5.6.zip (phiên bản có thể khác, nhưng cách cài thì như nhau).

Có thể dùng VisualSVN cũng được, nhưng để hiểu rõ hơn bản chất của nó mình sẽ giới thiệu về svn-win32 và quản lý nó bằng Command-line và text file.

Giải nén svn-win32-3.5.6.zip vào đâu đó (trong ví dụ này mình giải nén vào ổ C), được thư mục C:\svn-win32-3.5.6\ (xem hình)

image

B2. Thiết lập biến môi trường

Mục đích của việc thiết lập biến môi trường là để trên cửa sổ command có thể truy xuất trực tiếp tới các thư viện của svn mà không cần phải gõ đường dẫn.

Thêm các biến môi trường như sau:

+ Right-click lên My Computer, chọn Properties.
+ Trong màn hình System Properties chọn tab Advanced.
+ Trong tab Advanced Click vào nút lệnh Environtment Variables.
+ Tại cửa sổ Environtment Variables có 2 phần (user variables và system variables).
+ Trong phần system variables, tìm đến dòng có tên Variable là “Path”, chọn dòng đó và nhấn nút edit.  (ở đây bạn có thể thêm vào user variable hoặc system variable đều được).
+ Sau khi nhấn nút Edit, trong màn hình Edit system variable, tại ô Variable value, bạn đưa con trỏ tới cuối ô; trong trường hợp cuối ô chưa có dấu “;” thì bạn thêm dấu “;” vào, sau đó thêm đường dẫn tới thư mục Bin của svn (thêm C:\svn-win32-1.5.6\bin). Đây là thư mục chứa các tập tin exe của svn.
+ Tiếp theo các bạn thêm biến SVN_EDITOR bằng cách tại vùng User variables hoặc System variables trên của sổ Environment variables, nhấn nút New
+ Trong cửa sổ New variable, thêm như hình sau, sau đó nhấn nút OK.

image

4. Tạo kho lưu trữ tài liệu, mã nguồn (Repository)

Kho lưu trữ tài liệu, mã nguồn (Repository) là thư mục chứa dữ liệu về dự án của bạn và các cấu hình truy cập các dữ liệu đó.

Để tại kho lưu dữ liệu, bạn sử dụng svnadmin, trong cửa sổ cmd của window, gõ lệnh sau:


svnadmin create <đường dẫn kho lưu>

Ví dụ:

svnadmin create C:\ARDRepository\

Sau khi thực hiện xong, SVN sẽ tạo ra trong ổ đĩa của bạn thư mục kho lưu (thư mục chứa dữ liệu các phiên bản tài liệu, mã nguồn, các cấu hình truy cập kho). Bên trong thư mục kho lưu, SVN đã tạo sẳn ra một số thư mục. Là người quản trị, bạn quan tâm đến thư mục Conf.

image5. Cấu hình đơn giản trong Repository

Trong phạm vi bài này, tôi chỉ giới thiệu các bạn tạo user và phân quyền đơn giản cho repository. (Bài sau sẽ giới thiệu chi tiết hơn về Authentication trong SVN)

Như phần trên tôi đã nói, các bạn quan tâm đến thư mục conf. Trong thư mục conf, SVN đã tạo sẵn cho các bạn 3 file: svnserve.conf, passwd, authz.

Điều đầu tiên các bạn làm là chỉnh sửa file svnserve.conf

Các bạn có thể đọc hoặc xóa trắng file svnserve.conf đi và cấu hình lại từ đầu (vì thực chất nó cũng đơn giản – có mấy dòng thôi).

Trong phạm vi bài này, bạn chỉ quan tâm đến 4 dòng sau:

[general]
anon-access = read
auth-access = write
password-db = passwd

[general]: đánh dấu bắt đầu session

anon-access: Cấu hình truy cập khi truy cập vào repository lưu không xác thực (không thông qua đăng nhập username, password). Có các giá trị hiệu lực tăng dần: none, read, write (chắc ko cần nói ý nghĩa của các giá trị này nhỉ 🙂 )

auth-access: Cấu hình khi truy cập vào repository có xác thực (đăng nhập bằng username, password). Các giá trị tương tự như trên

password-db: Tên file chứa thông tin username và password truy cập vào kho lưu. Trong trường hợp trên là file passwd (đã được svn tạo sẵn).

Bạn có thể xóa trắng file svnserve.conf và copy 4 dòng trên paste vào là ok.

Việc tiếp theo bạn làm là tạo ra một vài user truy cập vào repository.

Để tạo user truy cập vào repository, bạn mở file passwd  đã có sẵn trong thư mục conf (mở bằng trình soạn thảo văn bản) và xóa trắng đi, gõ lại từ đầu (cho nó chuyên nghiệp 🙂 )

Tạo một vài user (trong ví dụ sau tôi sẽ tạo user admin mật khẩu là nimda, user1 mật khẩu 1resu, user2 có mật khẩu 2resu

[users]
admin = nimda
user1 = 1resu
user2 = 2resu

Bắt đầu bằng dòng báo hiệu session cấu hình User [users], mỗi dòng tiếp theo sẽ là username và password của mỗi user. Cấu trúc Username = password

Phù, như thế là xong phần cấu hình đơn giản.

Hãy test lại xem cấu hình của bạn có OK hay không, hãy mở cmd lên, gõ lệnh sau vào để chạy service của SVN.

svnserve –d –r C:\ARDRepository

Enter, nếu không có báo gì thì là OK (đừng hụt hẫng nhé, tưởng không báo gì lại tưởng cấu hình sai)

6. Tạo dự án để lưu trữ trong Repository

Giữ nguyên cửa sổ cmd đang chạy service SVN ở trên (đừng tắt đi nhé) và mở một cửa sổ CMD khác để thao tác với các lệnh của giao thức SVN.

Mở 1 cửa sở cmd khác, gõ lệnh sau để tạo mới 1 Project lưu trong ARDRepository.

svn mkdir svn://localhost/<tên dự án> –m “<Mô tả thông tin về dự án>” ––username  <tên user> ––password <password>

Ví dụ:

svn mkdir svn://localhost/AS –m “Asia Standard” ––username admin ––password nimda

Khi đó, nếu thành công bạn sẽ nhận được:

Committed revision 1.

Có thể không cần sử dụng tham số password

 

svn mkdir svn://localhost/AP –m “Asia Professional” ––username admin

Khi đó, sau khi enter, SVN yêu cầu bạn phải nhập password cho admin, bạn nhập mật khẩu xong, nếu thành công nó cũng sẽ báo commited.

 

C:\Documents and Settings\Chungtv>svn mkdir svn://localhost/AP –m “Asia Professional” ––username admin
Authentication realm: <svn://localhost:3690> 58a7a8ca-296d-2d48-a4a5-f5420ae2ca80
Password for ‘admin’: *****

Committed revision 2.

Kiểm tra lại danh sách dự án bạn mới tạo bằng lệnh list (hoặc ls) của SVN.

svn ls svn://localhost

6. Tạo service trong window để chạy svn service

Bước tiếp theo, các bạn tạo 1 service để chạy svn service cho repository bạn đã tạo.

Tại sao phải tạo service? ở bước trên, các bạn để ý là muốn sử dụng được các lệnh của giao thức SVN (mkdir, list …) thì không được tắt cửa sổ cmd đang chạy lệnh svnserve –d –r C:\ARDRepository

Như vậy là mỗi khi khởi động lại máy chủ, muốn cho các máy trạm có thể truy cập vào repository của bạn thì bạn phải lên server và chạy lệnh đó để start service svn (bất tiện quá đúng không). Bước này, bạn sẽ tạo 1 service khởi động cùng window.

Bạn tắt của sổ cmd đang chạy service SVN đi để tiếp tục.

Để tạo service, bạn sử dụng lệnh SC (chú ý là bạn phải có quyền admin trên máy này nhé, nhất là các bạn đang dùng win7, hãy righ-click vào cmd.exe và Run as Administrator trước khi tiếp tục).

Trong cửa sổ cmd, bạn gõ lệnh sau để tạo service.

 

sc create <ARDSVN> binpath= “c:\svn-win32-3.5.6\bin\svnserve.exe ––service –r C:\ARDRepository” displayname= “ARD SVN Server” depend= TCPIP start= auto

+ ARDSVN: Tên của service.
+ binpath= “…”: Đường dẫn thực thi service và chỉ định các tham số (chú ý là sau dấu = có khoảng trắng còn trước nó thì không nhé)
+ displayname= “…”: Tên của service sẽ hiện thị trong Services Management (cũng chú ý khoảng trắng sau dấu ‘=).
+ depend = TCPIP: Danh sách các service Dependencies, cần thiết để sử dụng service svn (trong trường hợp này cần phải có service TCPIP)|
+ start= auto: Xác định service này sẽ tự động chạy khi khởi động window.

OK, nếu không có gì sai sót thì sau khi ENTER, bạn sẽ nhận được thông báo:

[SC] CreateService SUCCESS

Tạo xong chưa chắt đã chạy được (vì thế thể cấu trúc trong binpath của bạn sau – thiếu dấu “-“ trước service chẳng hạn)

Bây giờ bạn thử chạy service đó lên bằng lệnh sau:

sc start ARDSVN

Nếu thành công bạn sẽ nhận được thông báo thông tin của service.

Trong trường hợp không thành công, bạn có thể xóa service đi bằng lệnh sc delete ARDSVN và tạo lại từ đầu.

Phù, thế là xong. Chúc các bạn thành công.

Categories: Source Control Tags: ,