LearnHouse

SVN基本指令

Trunk、Tags、Branches 的差別

Trunk : 主要開發
Tags : 當要 Release 時,就標個Tag。
Branches : 當要加新功能,或是Bug fix時,將 Trunk 複制一份到 Branches 再繼續開發,之後再 Merge 回Trunk

SVN 的指令

checkout (co) : 將SVN上的資料checkout出來
svn checkout svn+ssh://learn-house.idv.tw/home/svn/repos/branches/life

update (up) : 更新為SVN上的最新版本
svn up

commit (ci) : 將目前有修改的 commit 到 SVN
svn ci (全部有修改的都會commit)
svn ci file1 file2 file3 (只將file1 2 3 commit)

add : 將檔案或目錄加進 SVN ,之後還要再 commit 才會真的加進 SVN
svn add file
svn add folder

mv : 改檔名,但之前的紀錄還是會繼續保留
svn mv old_file new_file

status (st) : 從上次up後,目前檔案的狀態,那些有更改。
svn st

revert : 還原成前一個版本的狀態
svn revert file
svn revert folder
svn revert *

info : 顯示 SVN 的資訊
svn info

resolved : 如果檔案有conflict,處理完後,要resolved,才可以ci
svn resolved file

diff : 將現在的檔案跟SVN做比較
svn diff (比對全部)
svn diff file
svn diff folder
svn diff -r 100:101 也可以 101:100

export : 將SVN上的資料export出來,不包含.svn
svn export svn+ssh://learn-house.idv.tw/home/svn/repos/branches/life

copy (cp) : 首先是建立一個Branch的方式。
EX:用 trunk/life 建一份branch 到 branches/life
svn cp svn+ssh://learn-house.idv.tw/svn/trunk/life svn+ssh://learn-house.idv.tw/svn/branches/life -m 'create branch'

import : 將整個資料匣,加到SVN中。
EX:將life資料匣,import到SVN的trunk/life
svn import life svn+ssh://ryan@learn-house.idv.tw/svn/trunk/life

log : 如果沒輸入參數, 預設會把所有 commit log 都列出來
svn log
svn log -l 10 # 顯示 10 筆(最新 10筆 Log)
svn log -c 100 # 顯示 revision 100 的 Logsvn log -v -c 100 # 顯示 revision 100 的詳細 Log

lock : 鎖定,這樣別人就沒辦法改了
svn lock file

unlock : 解除鎖定
svn unlock file

SVN 狀態

? - 是新的檔案,不在SVN裡
A - 新增的檔案
C - 檔案跟SVN的不同,合併失敗,要手動處理
D - 移除的檔案
M - 有修改過
U - 有更新
G - 跟SVN上的檔案不同,但合併成功。

posted by admin in Linux and have No Comments

Place your comment

Please fill your data and comment below.
Name
Email
Website
Your comment