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

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.

Advertisements
Categories: Source Control Tags: ,
  1. 02/12/2012 at 00:55

    Em chào Thầy, Chào Các Bạn

    Bên Em hiện cung cấp gói Hosting đã tích hợp sẵn SVN. Bên Em có các gói Hosting bình thường (có tích hợp – có thể test luôn) và gói chuyên dùng SVN (Không có MySQL – dung lượng ổ đĩa lớn hơn gói hosting bình thường.

    Thầy và Các Bạn có nhu cầu sử dụng dịch vụ SVN thì liên hệ Em nhé

    Ưu điểm là độ bảo mật cao, không giống như bên Google. Bên google họ publich
    Host đặt tại VN nên tốc độ nhanh và ổn định.
    Link bảng giá hosting SVN: http://hostingviet.vn/dich-vu-svn-hosting-tai-viet-nam.html

    Hướng dấn sử dụng SVN:http://hostingviet.vn/download-tai-lieu/huong-dan-su-dung-svn-server-tai-hostingviet-vn/detail.html

    Nguyễn Trung Văn
    Email: banhang@hostingviet.vn / van.nguyentrung88@gmail.com
    YM: vannt_99 / Skype: vannt_99
    ĐT: 01656.95.86.88
    Website: http://hostingviet.vn

  2. 22/10/2011 at 17:22

    Linh :

    SVN lưu lại tài khoản của lệnh trước đó. Nếu trước đó dùng tài khoản B để đăng nhập thì nó sẽ sử dụng tài khoản đó cho lệnh sau

    Đó là vấn đề em cũng muốn hỏi thầy và bạn kia chắc cũng thế. Em không hi vọng nhận đuợc câu trả lời từ site này, nhưng hi vọng thầy trả lời cho các bạn khác được biết:

    Như vậy làm sao checkout| commit lại dự án ở trên một máy với tài khoản A, sau khi đã lỡ save tài khoản B trên máy mình trứớ đó

    Thường khi đăng nhập thì svn sẽ lưu cache của user, em phải xoá cache đi bằng cách:
    1. Vào Start\Run, gõ đoạn sau: %APPDATA%\Subversion\auth -> enter
    2. Chương trình mở ra 1 thư mục, em xoá hết tất cả các thư mục con của nó là xong.
    Khi login lại vào svnserver thì sẽ phải đăng nhập lại, em dùng tài khoản khác để đăng nhập bình thường.

  3. Nguyen Hai
    29/12/2010 at 20:26

    Thay oi, su khac nhau giua updates voi commit trong google code nhu the nao?
    Ai co quyen update hay commit?
    Update va commit cai nao tao ra reversion?

  4. Lỗi ghi nhớ tài khoản
    16/11/2010 at 21:10

    Có nghĩa là, khi e đăng nhập với tài khỏan A(quyền Commiter) thì khi e post bài lên svn server thì máy ghi nhận người post là tài khỏan người quản trị B.Mặc dù,không đăng nhập tài khoản B.

  5. Lỗi ghi nhớ tài khoản
    16/11/2010 at 16:14

    Thưa thầy,giả sử em tạo một tài khoản gmail với tên A.Khi e tham gia vào một dự án,thì e được cấp quyền Commiter.Người quản trị có tài khoản gmail là B.Khi e đăng nhập với tài khỏan A,thì khi gửi bài lên svn server thì máy lại ghi nhớ tài khoản người quản trị là B.E không biết tại sao?

    • 16/11/2010 at 16:29

      mình thực sự ko hiểu câu hỏi của em. SVN lưu lại tài khoản của lệnh trước đó. Nếu trước đó dùng tài khoản B để đăng nhập thì nó sẽ sử dụng tài khoản đó cho lệnh sau.

      • 21/10/2011 at 09:30

        SVN lưu lại tài khoản của lệnh trước đó. Nếu trước đó dùng tài khoản B để đăng nhập thì nó sẽ sử dụng tài khoản đó cho lệnh sau

        Đó là vấn đề em cũng muốn hỏi thầy và bạn kia chắc cũng thế. Em không hi vọng nhận đuợc câu trả lời từ site này, nhưng hi vọng thầy trả lời cho các bạn khác được biết:

        Như vậy làm sao checkout| commit lại dự án ở trên một máy với tài khoản A, sau khi đã lỡ save tài khoản B trên máy mình trứớ đó

  6. Trần Văn Khánh
    06/11/2010 at 23:54

    Thầy ơi sao em delete mà không được vậy thầy.Không biết em làm sai chổ nào nửa.

    • 07/11/2010 at 21:22

      Trần Văn Khánh :

      Thầy ơi sao em delete mà không được vậy thầy.Không biết em làm sai chổ nào nửa.

      Em phải ghi lỗi lên chứ. Có thể do phân quyền trong SVN sai, cũng có thể do security trên thư mục (do em dùng win 7 chẳng hạn).

  1. 26/12/2010 at 00:39

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: