svn 命令列 備忘

2021-08-31 02:27:41 字數 3537 閱讀 5553

開發人員常用命令

匯入專案

svn import --message "start project"

匯出專案

svn checkout

採用export 的方式來匯出乙份「乾淨」的專案

svn export pthread

為失敗的事務清場

svn cleanup

在本地進行**修改,檢查修改狀態

svn status -v

svn diff

更新(update)伺服器資料到本地

svn update directory

svn update file

增加(add)本地資料到伺服器

svn add file.c

svn add dir

對檔案進行改名和刪除

svn mv b.c bb.c

svn rm d.c

提交(commit)本地文件到伺服器

svn commit

svn ci

svn ci -m "commit"

檢視日誌

svn log directory

svn log file

如果不跟path,則checkout到當前路徑,以url中最後乙個路徑名作為檢出檔名

如果有path,則為path的最後路徑名為檢出檔名

add: 把檔案和目錄納入版本控制,通過排程加到版本庫。它們會在下一次提交時加入。

用法: add 路徑...

delete (del, remove, rm): 從版本庫中刪除檔案和目錄。

用法: 1、delete path...

2、delete url...

1、每個path 指定的專案會被排程到下次提交時從版本庫刪除。除非給出

如果path 是未版本控制或者已修改的專案,或者包含這些專案,那麼僅當

給出--force 引數時這些專案才會被刪除。

status (stat, st): 顯示工作副本中目錄與檔案的狀態。

用法: status [path...]

未指定引數時,只顯示本地修改的條目(沒有網路訪問)。

使用-q 時,只顯示本地修改條目的摘要資訊。

使用-u 時,增加工作版本和伺服器上版本過期資訊。

使用-v 時,顯示每個條目的完整版本資訊。

1.svn update

<<<<<<< .mine

* wuzhong haha 2                       本地**塊

*****==

* wuzhong hello world                    svn庫v27版本**塊

>>>>>>> .r72 */

2 . svn resolved path

3. svn commit –m 「***」

用法: 1. diff [-c m | -r n[:m]] [target[@rev]...]

2. diff [-r n[:m]] --old=old-tgt[@oldrev] [--new=new-tgt[@newrev]] \

[path...]

3. diff old-url[@oldrev] new-url[@newrev]

1、顯示版本rev 中target 在兩個不同的版本之間的差異。target 要麼全是

工作副本路徑,要麼全是url。如果target 是工作副本路徑,n 預設為

base,m 預設為工作副本;如果target 是url,n 必須指定,m 預設為head。

「-c m」 等價於 「-r m-1:m」,「-c -m」 等價於 「-r m:m-1」。

2、顯示新舊版本中對應目標的差異。path 是相對於新舊目標的相對路徑,

它限制只輸出這些路徑上的差異。新舊目標可以是工作副本路徑或位址url[@rev]。

新目標預設與舊目標相同,oldrev 預設為n,newrev 預設為m。

3、「svn diff --old=old-url[@oldrev] --new=new-url[@newrev]」 的簡寫。

使用不加引數的 「svn diff」 顯示工作副本中的本地修改。

有效選項:

-r [--revision] arg      : arg (一些命令也接受arg1:arg2範圍)

版本引數可以是如下之一:

number       版本號

'' 在指定時間以後的版本

'head'       版本庫中的最新版本

'base'       工作副本的基線版本

'committed'  最後提交或基線之前

'prev'       committed的前一版本

-c [--change] arg        : 在arg版本(如同-r arg-1:arg)作的修改

如果arg為負數則等價於-r arg:arg-1

--old arg                : 使用arg 作為舊目標

--new arg                : 使用arg 作為新目標

-n [--non-recursive]     : 過時;嘗試 --depth=files 或--depth=immediates

merge: 將兩個源差異應用至工作副本。

用法:  1. merge sourceurl1[@n] sourceurl2[@m] [wcpath]

2. merge sourcewcpath1@n sourcewcpath2@m [wcpath]

3. merge [-c m[,n...] | -r n:m ...] source[@rev] [wcpath]

1、第一種形式中,源url 的版本n 與m 作為比較的**。如果沒有指定版本,預設

為head。

2、在第二種形式中,兩個源工作副本路徑對應的版本庫中的url 作為比較的**。這

裡必須指定版本。

3、第三種形式中,source 可為url 或工作副本中的路徑(後者會使用版本庫中對應

的url)。比較版本為rev 的source,就像它在版本n 到m 存在一樣。如果沒

有給出rev,默之認為head。選項 「-c m」 等價於 「-r :m」,「-c -m」 與

相反,等價於 「-r m:」。如果沒有指定版本範圍,預設為0:rev。可以指定

多個 「-c」 或 「-r」,並且可以混合使用向前範圍或向後範圍。

wcpath 是接收修改的工作副本路徑。如果省略了wcpath,預設為 「.」,除非**中

有與當前目錄內同名的檔案,這時修改會直接應用至該檔案。

注意:  subversion 只有當兩個合併源有繼承關係的時候才會內部跟蹤合併操作的源數

據-- 即如果第乙個合併源是第二個的祖先,或者相反。在上述的第三種形式中,已經

保證了滿足條件。選項--ignore-ancestry 忽略繼承關係,強制subversion 認為合併

源之間沒有關係,不跟蹤本次合併。

svn mkdir svn: -m "mk shell dir"

svn 命令列技巧

subversion svn的設計還是非常棒的!子命令清晰明了,外圍工具或plugin有時不能work,還必須用命令列 根本入手 當時對scalability需求不強,所以沒有像git,mercurail一樣設計分布式。所以,這幾年用svn少了一些。但對小專案足夠了。1.外部editor 很多命令可...

命令列工具SVN

一 關於命令列工具svn 如果你不知道命令怎麼用svn命令,可通過如下方式查詢 svn help 知道了子命令,但是不知道子命令的用法,還可以查詢 svn help ci 常用命令格式與舉例 匯入專案 svn import message start project 匯出專案 svn checkou...

命令列工具SVN

一 關於命令列工具svn 如果你不知道命令怎麼用svn命令,可通過如下方式查詢 svn help 知道了子命令,但是不知道子命令的用法,還可以查詢 svn help ci 常用命令格式與舉例 匯入專案 svn import message start project 匯出專案 svn checkou...