新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > Linux之svn常用命令詳解

Linux之svn常用命令詳解

作者: 時間:2016-10-08 來源:網(wǎng)絡(luò) 收藏

1、簽出代碼

本文引用地址:http://www.butianyuan.cn/article/201610/305664.htm

#svn co path

2、添加文件

#svn add xxx

將xxx文件或目錄添加到svn庫中。

3、刪除文件

#svn delete xxx

將xxx文件或目錄從svn庫中刪除

4、修改文件

#svn move xxx yyy

將xxx文件重命名為yyy,類似于Linux的mv命令。

5、檢查修改

#svn status

檢查修改了哪些文件。

6、查看差異

#svn diff

列出修改的明細。

#svn diff -r 3

同具體的版本進行diff

#svn diff -r 2:3

比較具體的兩個版本之間的diff

7、查看日志

#svn log

查看歷史日志信息。

8、撤銷修改

#svn revert xxx

撤銷修改,恢復(fù)到未改變的本地工作副本。

9、移除沖突

#svn resolved xxx

移除沖突,但并不解決沖突。

10、提交代碼

#svn ci -m message xxx

將xxx文件提交到svn庫。

12、更新版本

#svn update -r xxx path

將代碼更新到xxx版本,如果update后面什么都沒有,則將當前目錄更新到最新版本。

13、分支與合并

(1)創(chuàng)建分支

#svn copy trunk branches/xxx -m message

從trunk創(chuàng)建一個分支branch,這樣就可以checkout branch分支來開發(fā)了。

需要注意的是:最好將branch與trunk放在同一層級,否則,容易引起混亂。

(2)分支合到主干

先用svn st查看branch分支沒有任何本地修改,即代碼都提交到svn了。

再checkout一份trunk代碼到本地,并切換cd到trunk目錄下,執(zhí)行如下命令來將branch分支上的改動merge到trunk:

#svn merge http://.../branches/xxx

如果出現(xiàn)merge沖突則進行解決,如下查看沖突文件:

#svn st|grep ^C

解決沖突后,執(zhí)行svn ci提交變動到svn。

當然也可以merge指定branch上的某些版本合并到trunk:

#svn merge http://.../branches/xxx -r 150:HEAD

上面命令將branch中從版本150到當前版本的所有改動都合并到trunk中。

合并完后,可以用如下命令來查看merge情況:

#svn mergeinfo http://.../branches/xxx

執(zhí)行上面命令可以查看當前branch中有哪些改動已經(jīng)合并到trunk中了。

#svn mergeinfo http://.../branches/xxx --show-revs eligible

執(zhí)行上面命令可以查看branch中哪些改動還未合并。

(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、版本回退

將代碼回退到某一個版本的方法有2種:

(1)svn merge

#svn up

先將本地代碼update到最新版本,比如:20。

#svn log

查看歷史版本,找出要恢復(fù)的版本,比如:10(svn版本號在查看的時候會是rxxx,但用的時候要去掉r)。

#svn diff -r 10:20 代碼目錄

如果有必要的話,可以用上面命令來查看待恢復(fù)版本與當前版本的差異。

#svn merge -r 20:10 代碼目錄

回滾版本即反向合并,注意上面版本號之間的順序,上面命令將版本r20回退到r10。

如果需要從當前最新版本回退到xxx版本,還可以如下:

#svn merge -r rHEAD:xxx http://.../trunk

上面的地址是待回退分支,操作完成后,本地的working copy會更新為trunk的xxx版本的代碼。

#svn diff -r 10 xxx.cpp

如果必要可以用如上命令來查看回退后文件差異,如果有則手動修改之。

#svn ci -m roll back to r10 代碼目錄

如果沒有差異,則需要將代碼提交到svn,否則回滾不會生效,提交后會在svn庫中生成新的版本號,比如這里會是:r20。

(2)svn up

還可以如下來回退版本:

#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



關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉