SVN快速使用總結

2021-07-24 02:45:16 字數 3501 閱讀 6877

本文總結了完成乙個需求開發所需知道的svn基本指令。

第一次從倉庫裡獲取**

$ svn checkout [your_repository_url]
如果已有本地**,則需要更新**,確保在最新**上開發

$ cd [your_local_codes_path]

$ svn update

svn倉庫中,trunk分支一般存放通過測試的最新**,因此不應該在該分支下修改**。合理的做法是:從trunk分支切出乙個feature分支,然後在該分支下修改**,直到測試通過後合併到trunk分支。

$ svn

copy

[your_trunk_url]

[your_feature_branch_url]

-m[your_log]

-m填寫建立分支的日誌

從trunk分支切換到feature分支

$ svn switch [your_feature_branch_url]
$ svn status
該命令顯示的格式為:狀態檔案,常見的狀態有:

字元狀態說明a

新增與上一版相比增加的檔案c衝突

該檔案衝突d刪除

該檔案已從倉庫刪除,以後svn不再跟蹤版本m修改

該檔案被修改過

s處於其他分支

當前分支的子路徑處於其他分支

?未納入版本管理

通常是新增檔案,svn還沒跟蹤該檔案的版本。可以使用svn add把檔案加入svn,此時再執行svn status時,檔案的狀態就顯示為a

!檔案缺失

svn找不到該檔案。一般出現在沒有使用svn命令刪除檔案的情況。當需要從倉庫刪除某檔案時,應該使用svn delete,這樣檔案的狀態就變為d,提交以後該檔案的版本就不再被跟蹤

開發完成後向遠端分支提交**

$ svn commit -m [your_log]
一般情況下**就提交到遠端分支了,但是如果有人和你修改了同一段**,並且先提交到了遠端分支,就會導致本次提交失敗,此時需要先解決衝突再提交**。

更新**,顯示衝突

$ svn update

$ conflict discovered in [your file]

select: (p) postpone, (df) diff-full, (e) edit,

(mc) mine-conflict, (tf) theirs-conflict,

(s) show

all options:

符號說明p

標記衝突,暫不處理

df顯示所有衝突

e編輯衝突

mc衝突以本地檔案為準

tf衝突以遠端倉庫為準

s顯示所有選項

一般先輸入df命令看衝突是否嚴重,如果不嚴重則通過e直接編輯,編輯頁面通常為

<<<<<<< .mine

[your_version]

*****==

[their_version]

>>>>>>> [version]

<<<<<<< .mine>>>>>>> [version]之間解決衝突,然後儲存。回到select介面,此時會多出乙個(r) resolve的命令。輸入r通知svn已解決衝突。

如果衝突很嚴重,需要和提交者討論解決,可以輸入p標記,此時輸入svn status顯示:

c

[your_file]

? [your_file]

.working

? [your_file]

.merge-left.[version]

? [your_file]

.merge-right.[version]

檔案

說明[your_file]

所有衝突標記在該檔案

[your_file].working

當前工作副本

[your_file].merge-left.[version]

產生衝突前基礎版本

[your_file].merge-right.[version]

倉庫裡的最新版本

用以下命令解決衝突

$ svn resolve --accept [base | working | mine-conflict

| theirs-conflict

| mine-full

| theirs-full

][conflicting file]

引數

說明base

將[your_file].merge-left.[version]做為最終結果

working

把[your_file]解決衝突後的結果做為最終結果

mine-conflict

將[your_file].working做為最終結果

theirs-conflict

將[your_file].merge-right.[version]做為最終結果

mine-full

將所有[your_file].working做為最終結果

theirs-full

將所有[your_file].merge-right.[version]做為最終結果

解決衝突後,檔案狀態變為m,這時再向倉庫提交**即可。

feature分支通過測試後就可以合併到trunk分支。首先切換到trunk分支,然後執行以下命令

$ svn merge [your_feature_branch_url]
merge還具有回滾的功能:svn merge -r old:new .。注意不要少最後乙個點,這表示把new版本會滾到old版本

順利的話,feature分支就合併到trunk分支了,但是如果有別人和你修改了同一段**並且提交到trunk分支就可能再次出現衝突。同樣先解決衝突再提交。

完成功能開發,合併到trunk後,刪除feature分支

$ svn

delete

[your_feature_branch_url]

-m[your_log]

以上就是開發過程中常用的svn命令,當然svn的命令是非常豐富的,想要更強大的功能可以通過svn help來進一步學習。

svn 使用總結

最近做專案使用 svn,不怎麼上手,蒐集了下資料,學習一下。使用svn常見的問題和解決方法如下 1 更新時提示檔案發生衝突 one or more files are not a conflicted state。多人同時修改同一檔案的同一部分,svn無法自動進行合併,會導致該錯誤 解決方法 對工作...

svn使用總結

1 svn使用教程參考 2 svn分支管理 trunk 表示開發時版本存放的目錄,即在開發階段的 都提交到該目錄上。branches 表示發布的版本存放的目錄,即專案上線時發布的穩定版本存放在該目錄中。tags 表示標籤存放的目錄。唯讀 svn中trunk,branches,tags用法詳解 bra...

SVN使用總結

一般情況subversion已經包含在很多linux發行版中了,可以使用命令檢查 svn version 和 svnadmin version,如果這兩條命令都沒問題,那麼subversion已經安裝完畢了。1.建立目錄 mkdir home svn 2.建立專案倉庫 svnadmin create...