linux下svn常用命令,總結如下:
命令格式:svn checkout url [path] (簡寫:svn co)url:**路徑 path:儲存拷貝的本地路徑 如果省略路徑引數,url 最末尾的目錄名作為目標目錄名。
例: svn co svn:
命令格式:svn update -r版本號 [path] (簡寫:svn up)svn update如果後面沒有指定-r選項及目錄,預設將當前目錄及其子目錄下的所有檔案都更新到最新版本。
例: svn update(將當前目錄及其子目錄更新到最新版本) svn update -r200 (將當前目錄及其子目錄更新或還原到版本200)
svn update -r 200 scripts/startup_1_init (將startup_1_init檔案更新或還原到版本200)
命令格式:svn add path 把檔案以及目錄的名稱新增給版本控制系統,它們會在下次提交時被新增到專案倉庫中。例: #mkdir test #svn add test (將目錄test新增給版本控制系統) a test (命令執行後test目錄狀態為「a」,表示新增)
#touch test.txt #svn add test.txt (將檔案test.txt新增給版本控制系統) a test.txt (命令執行後test.txt檔案狀態為「a」,表示新增)
命令格式:svn status [path](簡寫:svn st) 列印工作拷貝中檔案和目錄的狀態。 svn st|grep^狀態(獲得某狀態檔案列表) svn st|grep -v ^狀態(也作svn st|grep
[狀態],過濾掉某狀態得到其他狀態檔案列表) 例: svn st|grep ^m (獲取「m」狀態檔案列表) svn
st|grep -v ^?(過濾掉「?」狀態的檔案列表) 常見狀態如下:
「a」 預定加入到版本庫
「c」 發生衝突
「d」 被刪除了
「m」 內容被修改
「?」 條目未納入版本控制
「!」 該專案已遺失(被非svn命令刪除)或不完整
「~」 版本控制下的專案與其它型別的專案重名 其中,「?」「!」「~」為非正常狀態,svn不會將處於該狀態的檔案提交至專案倉庫。 「!」 狀態說明 出現原因:使用非svn命令(rm等)刪除了此條目。 解決方法:使用svn update(svn
up),將被刪除的條目更新出來。 正確操作方法:使用svn delete刪除納入版本控制的條目 「~ 」狀態說明
出現原因:刪除了乙個版本庫的檔案,新建了乙個在原來的位置,新建檔案型別與原有檔案不一致,而且整個過程中沒有使用svn delete或是svn
add。 解決方法: 將「~」檔案svn revert 掉,按照正確操作重新修改。 出錯案例:
wsdl標頭檔案統一建立在include/wsdl_include目錄中,各模組webservice目錄下的同名wsdl標頭檔案只是建立的軟鏈結。若拷貝include/wsdl_include目錄中wsdl標頭檔案將webservice目錄下的同名wsdl標頭檔案覆蓋掉,svn
st檢視wsdl標頭檔案狀態為「~」。
命令格式:svn revert [-r] path 撤銷掉對本地**所做的修改恢復到原始未改變的工作副本狀態。若撤銷對整個目錄的修改,需要加「-r」選項。
-r:向下遞迴,撤銷對整個目錄所做的修改。 例: svn revert scripts/startup_1_init(發現誤改了某個檔案,可執行此命令將改動撤銷掉。) svn revert -r scripts
(撤銷對scripts目錄中檔案所做的所有改動。)
命令格式:svn diff [-r m:n] [path](簡寫:svn di) 將修改的檔案與基礎版本比較。 例: svn diff(預設顯示當前目錄及其子目錄下的所有修改差異) svn diff
scripts/startup_1_init(檢視startup_1_init檔案的修改差異) svn diff >bug***.diff
(修改內容多時匯出到diff檔案中,便於更直觀的檢查。) svn diff -r m:n [path]
(對版本m和版本n比較差異。) 獲得**合入後的diff 檔案(即某次的提交diff): svn diff -r
提交後版本號-1:提交後版本號 > bug***.diff 或使用等價命令 svn diff -c 提交後版本號 >
bug***.diff (檢查合入後的diff檔案內容是否與自己的修改相符,有沒有多合、漏合或者錯合的**
,對比合入前生成的diff檔案與合入後的diff檔案是否一致。)
注:svn status、svn diff和 svnrevert這三條命令在沒有網路的情況下也可以執行的,原因是svn在本地的.svn中保留了本地版本的原始拷貝。
命令格式:svn commit -m 「bug*** by ***」 [path] (簡寫:svn ci) path不填或為「.」時,即將當前目錄及其子目錄下的所有改動提交到版本庫。 例: svn commit -m 「bug112 modified by
zhangsan」 --username zhangsan
注:在**根目錄下將對應問題單的所有修改檔案一次性提交到版本庫,不要到各個目錄下分別提交以避免漏合;問題一次性修改合入,避免乙個問題單合入多次導致中間版本出現編譯或功能問題。
命令格式:svn log [path] 顯示本地 path的日誌資訊,path不填或為「.」時顯示當前目錄的日誌資訊。 例: svn logscripts/startup_1_init(顯示此檔案的所有修改記錄,及其版本號的變化。) svn info檢視檔案詳細資訊
命令格式:svn info [path]
svn mkdir建立納入版本控制下的新目錄 命令格式:svn mkdir path 例: #svn mkdir newdir anewdir 新增目錄newdir,相當於mkdir newdir和svn add newdir的命令集合。
適用場景1: 乙個問題要合入多個分支,若分支**差異不大,可以在其中乙個分支(a)上修改提交後,使用svnmerge命令將改動合併到另外的分支(b)上。 用法: 在**根目錄下執行: svn merge
–ignore-ancestry -rn-1:n源**路徑 目的**路徑 或使用等價命令 svn merge --ignore-ancestry -c n源**路徑 目的**路徑 其中,n指的的是你在a分支上此次改動提交後的svn版本號;源**路徑和目的**路徑均為本地**的路徑(相對路徑、絕對路徑皆可以)。 舉例:
將a中的改動merge到b中,如果是在b**根目錄下執行,命令如下:
svn merge --ignore-ancestry -rn-1:n a**相對路徑 . (「.」代表當前目錄) 注意事項: 執行此命令後一定要檢查檔案狀態,有時候會附帶著改動一些其他檔案的屬性,修改svn:mergeinfo,此類修改只是更改檔案的合併資訊對功能無任何影響,不過建議將這些檔案revert掉再生成diff檔案檢查自己的改動是否正確,
最後編譯版本做功能驗證,驗證通過後再提交(svn commit)至專案倉庫。 補充:使用svn
merge命令移植**用於問題已合入merge源分支的情況下。若問題未合入任何分支則可使用如下方法:
如果**在a分支中,尚未合入,則可先生成diff檔案: svn diff [path1] [path2] [path3] >
***.diff 然後進入b分支同級目錄,執行patch -p0 <
***.diff,即可匯入修改。(因二進位制檔案無法生成diff,所以也無法通過patch將二進位制檔案的變更移植到其他分支。)
注意:產生衝突時,會生成與衝突檔案對應的衝突檔案(字尾與svn操作時生成的衝突檔案不同),可用於人工解決衝突。
適用場景2: 回退問題單。 用法: 在**根目錄下執行以下命令svn merge --ignore-ancestry -rn:n-1 . (「.」代表當前目錄,不可省。) 或使用等價命令svn merge --ignore-ancestry -c -n . n代表此次要被回退的問題單之前合入**時的svn版本號。 舉例:
將主線分支中合入的bug11373回退掉。(bug11373合入主線後的svn版本號為16534。)
在本地主線**工作拷貝根目錄下執行svn merge回退此次合入的修改,並將回退操作由工作拷貝提交至專案倉庫。 svn merge
–ignore-ancestry -r16534:16533 . ( 或svn merge --ignore-ancestry -c -16534 . ) svn ci -m 「rollback bug11373」 svn help幫助 命令格式:svn help [子命令] 描述本程式或其子命令的用法。
linux下svn常用命令
1 將檔案checkout到本地目錄 svn checkout path path是伺服器上的目錄 例如 svn checkout svn 簡寫 svn co 2 往版本庫中新增新的檔案 svn add file 例如 svn add test.php 新增test.php svn add php ...
linux下svn常用命令
列出幾個常用到的linux svn命令 svn checkout path path是svn位址 如 svn checkout 簡寫 svn co svn add path 如 svn add test.cpp svn commit m 修改資訊 path 如 svn commit m 新增make...
linux下svn常用命令
1 將檔案checkout到本地 svn checkout path path是伺服器的目錄 例如 svn checkout svn 2 往版本庫中新增新的檔案 svn add filename 例如 svn add test.cpp 3 將改動的檔案提交到版本庫 svn commit m 注釋 n...