1.svn的基本概念在這里就不詳述了,下一代的CVS。
2.基本命令
(1)查找?guī)椭?nbsp; svn help
查看的幫助svn help import,在這里有詳細(xì)的import命令的用法。
(2)svn import
將一個(gè)工程加入到svn中,eg
svn import testproject [url | file path]
注:testproject為工程目錄路徑
(3)svn co [url | path] : 從svn中checkout代碼
(4)svn add foo
將foo添加入工程,若foo為目錄,所有文件都將加入,若只想加入目錄本身,svn add foo --non-recursive
svn delete foo
同add相反
svn move foo foo1 改名(類(lèi)似linux的mv)
svn mkdir blort:創(chuàng)建一個(gè)目錄
(5) 檢查修改
svn status:檢察你的修改了那些文件
svn diff:列出每個(gè)文件的修改明細(xì)
生成patchfile
svn diff > pathfile
同具體的版本的進(jìn)行diff
svn diff -r 3
比較具體兩個(gè)版本號(hào)的diff
svn diff -r 2:3
(6)更新代碼及解決沖突
svn up 或者svn update
(7)提交修改
svn commit
(8) 檢查歷史
svn log
(9)瀏覽版本庫(kù)
svn list
svn cat
3 版本管理
(1):svn的版本號(hào)是一類(lèi)數(shù)字,也可以用特定的關(guān)鍵字表示版本
HEAD :版本最新的版本號(hào)
BASE:工作拷貝中一個(gè)條目的修訂版本號(hào)
COMMITTED:項(xiàng)目最近修改的修訂版本,與BASE相同或更早
PREV:commit之前的一個(gè)版本
比如你想看最新版本的修改
svn log -r HEAD,此時(shí)HEAD就會(huì)被解釋為最新的版本號(hào)
(2)用時(shí)間查找版本號(hào)
svn log -r {2011-04-01}:{2011-04-22}
4 分支與合并
在一個(gè)工程目錄里都有一個(gè)主干trunk目錄和一個(gè)分支branches目錄。
當(dāng)一個(gè)項(xiàng)目很大,有多個(gè)人協(xié)作開(kāi)發(fā)時(shí),如果大家都在主干目錄開(kāi)發(fā)時(shí)容易造成混亂。當(dāng)你一個(gè)人開(kāi)發(fā)一個(gè)功能模塊時(shí),而開(kāi)發(fā)周期可能比較長(zhǎng)才能完成該功能,此時(shí)你不能將未完成的代碼提交到主干,容易造成混亂。此時(shí)你可開(kāi)一個(gè)分支,然后在你這個(gè)分支目錄下工作。
(1)創(chuàng)建分支
svn copy [url] [url]
eg:svn copy http://svn.example.com/repos/calc/trunk
http:://svn.example.com/repos/cal/branches/my-calc-branch
此時(shí)并不真得弄一個(gè)復(fù)本,只是一個(gè)鏈接,稱為廉價(jià)復(fù)價(jià)。
這個(gè)時(shí)候你就可以從你的分支目錄check out代碼,并進(jìn)行工作了
svn co http:://svn.example.com/repos/cal/branches/my-calc-branch.
(2)在分支上工作,
可以svn commit,此時(shí)并不影響主干。
(3)合并分支:
當(dāng)你開(kāi)發(fā)周期較長(zhǎng)時(shí),而此時(shí)主干代碼已經(jīng)發(fā)生更交,若時(shí)間過(guò)長(zhǎng),很可能你的支支與主干脫節(jié),此時(shí)要將主干更新的代碼合并到你的分支上。
svn merge url
例如:svn merge http://svn.example.com/repos/calc/trunk
將主干部分更新代碼合并到你的分支上。
posted on 2011-04-26 13:45
kuramawzw 閱讀(4018)
評(píng)論(2) 編輯 收藏 引用 所屬分類(lèi):
Linux