Linux之svn常用命令詳解
1、簽出代碼
#svn co path
2、添加文件
#svn add xxx
將xxx文件或目錄添加到svn庫(kù)中。
3、刪除文件
#svn delete xxx
將xxx文件或目錄從svn庫(kù)中刪除
4、修改文件
#svn move xxx yyy
將xxx文件重命名為yyy,類似于Linux的mv命令。
5、檢查修改
#svn status
檢查修改了哪些文件。
6、查看差異
#svn diff
列出修改的明細(xì)。
#svn diff -r 3
同具體的版本進(jìn)行diff
#svn diff -r 2:3
比較具體的兩個(gè)版本之間的diff
7、查看日志
#svn log
查看歷史日志信息。
8、撤銷修改
#svn revert xxx
撤銷修改,恢復(fù)到未改變的本地工作副本。
9、移除沖突
#svn resolved xxx
移除沖突,但并不解決沖突。
10、提交代碼
#svn ci -m "message" xxx
將xxx文件提交到svn庫(kù)。
12、更新版本
#svn update -r xxx path
將代碼更新到xxx版本,如果update后面什么都沒有,則將當(dāng)前目錄更新到最新版本。
13、分支與合并
(1)創(chuàng)建分支
#svn copy trunk branches/xxx -m "message"
從trunk創(chuàng)建一個(gè)分支branch,這樣就可以checkout branch分支來(lái)開發(fā)了。
需要注意的是:最好將branch與trunk放在同一層級(jí),否則,容易引起混亂。
(2)分支合到主干
先用svn st查看branch分支沒有任何本地修改,即代碼都提交到svn了。
再checkout一份trunk代碼到本地,并切換cd到trunk目錄下,執(zhí)行如下命令來(lái)將branch分支上的改動(dòng)merge到trunk:
#svn merge http://.../branches/xxx
如果出現(xiàn)merge沖突則進(jìn)行解決,如下查看沖突文件:
#svn st|grep ^C
解決沖突后,執(zhí)行svn ci提交變動(dòng)到svn。
當(dāng)然也可以merge指定branch上的某些版本合并到trunk:
#svn merge http://.../branches/xxx -r 150:HEAD
上面命令將branch中從版本150到當(dāng)前版本的所有改動(dòng)都合并到trunk中。
合并完后,可以用如下命令來(lái)查看merge情況:
#svn mergeinfo http://.../branches/xxx
執(zhí)行上面命令可以查看當(dāng)前branch中有哪些改動(dòng)已經(jīng)合并到trunk中了。
#svn mergeinfo http://.../branches/xxx --show-revs eligible
執(zhí)行上面命令可以查看branch中哪些改動(dòng)還未合并。
(3)主干合到分支
主干合并到分支的過程同上,具體如下:
#svn co http://.../branches/xxx
#svn merge http://.../trunk -r 150:160
#svn st|grep ^C
#svn ci -m "merge trunk to branch"
#svn mergeinfo http://.../trunk
#svn mergeinfo http://.../trunk --show-revs eligible
14、版本回退
將代碼回退到某一個(gè)版本的方法有2種:
(1)svn merge
#svn up
先將本地代碼update到最新版本,比如:20。
#svn log
查看歷史版本,找出要恢復(fù)的版本,比如:10(svn版本號(hào)在查看的時(shí)候會(huì)是rxxx,但用的時(shí)候要去掉r)。
#svn diff -r 10:20 代碼目錄
如果有必要的話,可以用上面命令來(lái)查看待恢復(fù)版本與當(dāng)前版本的差異。
#svn merge -r 20:10 代碼目錄
回滾版本即反向合并,注意上面版本號(hào)之間的順序,上面命令將版本r20回退到r10。
如果需要從當(dāng)前最新版本回退到xxx版本,還可以如下:
#svn merge -r rHEAD:xxx http://.../trunk
上面的地址是待回退分支,操作完成后,本地的working copy會(huì)更新為trunk的xxx版本的代碼。
#svn diff -r 10 xxx.cpp
如果必要可以用如上命令來(lái)查看回退后文件差異,如果有則手動(dòng)修改之。
#svn ci -m "roll back to r10" 代碼目錄
如果沒有差異,則需要將代碼提交到svn,否則回滾不會(huì)生效,提交后會(huì)在svn庫(kù)中生成新的版本號(hào),比如這里會(huì)是:r20。
(2)svn up
還可以如下來(lái)回退版本:
#svn up
#svn up -r 10
#svn ci -m "roll back to r10" 代碼目錄
15、創(chuàng)建tags
#svn mkdir tags
#svn copy trunk/ tags/project_1.0.0
執(zhí)行上面命令將備份版本copy到tags。
#svn ci -m "add project_1.0.0 to tags"