SVN 安裝以及常用操作

SVN Windows 版安裝

服務端安裝程序
http://tt1253.oss-cn-shenzhen.aliyuncs.com/setup/SVN/Server/Setup-Subversion-1.8.17.msi
下載完成後選擇安裝路徑直接下一步即可。
安裝完成後需要把svnserve 安裝爲 windows 服務
命令 sc create 服務名稱 binPath=“svnserve程序路徑 --service -r 倉庫路徑”
在這裏插入圖片描述
安裝成功後把服務設置爲自動啓動,並啓動服務。
在這裏插入圖片描述
啓動後應是已啓動狀態
在這裏插入圖片描述
客戶端安裝程序
安裝包
http://tt1253.oss-cn-shenzhen.aliyuncs.com/setup/SVN/Client/TortoiseSVN-1.10.3.28489-x64-svn-1.10.4.msi
中文版語言包
http://tt1253.oss-cn-shenzhen.aliyuncs.com/setup/SVN/Client/LanguagePack_1.10.3.28489-x64-zh_CN.msi
客戶端的安裝也是非常簡單,直接下一步就是了。安裝完成後再安裝語言包。
在這裏插入圖片描述
在TortoiseSVN文件夾中到找 settings, 在常規設置中可以選擇語言。
在這裏插入圖片描述

創建倉庫

這裏創建倉庫時必須創建在安裝服務時指定的路徑,否則svn將無法找到倉庫
svnadmin create G:\Repositories\svntest
將會在 G:\Repositories 目錄下生成名爲 svntest 的倉庫
在這裏插入圖片描述
打開svntest文件夾中的conf文件夾
在這裏插入圖片描述
裏面包含svn的配置信息。
常用配置方法請看:
https://blog.csdn.net/qq_27461747/article/details/104917202
passwd中添加一行用戶名密碼
在這裏插入圖片描述
svnserve 文件中把 19行 20行 27行中的#號刪除。如圖所示。
在這裏插入圖片描述

Svn 備份 或 遷移

備份/導出
svnadmin dump 倉庫目錄 > 目標目錄
在這裏插入圖片描述
在這裏插入圖片描述
導入/還原
svnadmin load 倉庫目錄 < 備份文件路徑

在這裏插入圖片描述

客戶端常用功能

檢出
檢出是把倉庫中的代碼下載到本地
在文件夾中右鍵功能裏可以找到SVN檢出功能
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
檢出後會將服務器資源下載到本地,並且本地目錄受SVN管理。
此處沒有文件是因爲,創建的倉庫中沒有提交過任何文件。
.svn是隱藏文件夾。存儲的是svn管理的一些內容,此文件夾如果被刪除。那麼此目錄將不受svn管理。

提交
新增的文件需要執行加入命令後再進行提交。修改的文件直接提交即可。 注意: 一般來說,提交之前需要先執行更新。避免代碼衝突。
在這裏插入圖片描述
在這裏插入圖片描述
輸入剛纔服務器中配置的用戶名密碼,完成提交。
如果出現認證失敗,請查看服務器中的svnserve 與 passwd 兩份文件是否配置正確。
更新
更新是把服務端中的最新文件下載到本地,如果最新文件中本地未作任何修改,將會直接更新,使用服務端的文件。如果最新文件中本地作出了修改,svn將會把雲端文件與本地文件進行合併。如果發生SVN無法正常合併的情況將會產生衝突。
爲了演示,我在svntest中新增三份文件123.txt,kkk.txt 與 abc.txt 文件 提交至服務器。 並再檢出一份項目至svntest1。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
這時我在 svntest 項目中做出如下修改
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在svntest1中修改 kkk.txt 與 abc.txt 文件
在這裏插入圖片描述
在這裏插入圖片描述
svntest 先提交, svntest1 進行更新 結果如圖所示。
在這裏插入圖片描述
123.txt文件只有 svntest 進行了修改 所以直接更新了。
在這裏插入圖片描述
abc.txt 文件中 svntest 修改了123行 svntest1 修改了456行,SVN可以正確識別合併,把 svntest 與 svntest1的修改都應用了
在這裏插入圖片描述
kkk文件由於 svntest 與 svntest1 同時對同行操作所以 SVN無法判斷使用誰的代碼,所以產生了衝突。這時候需要解決衝突,否則無法再次提交代碼。
解決方法
選中衝突的文件
在這裏插入圖片描述
可以選擇 使用他們的 或者 使用我的 來解決衝突。但是可能會造成代碼丟失。
最好是使用 編輯衝突來解決。
在這裏插入圖片描述
左側代碼區是服務端中的代碼 右側代碼區是本地文件的代碼。這兩個區域的代碼都是無法編輯的。
下端是合併後的代碼。把問號刪除修改爲你想要的代碼內容保存,選擇解決衝突即可。

除了代碼衝突之外還有樹衝突。樹衝突解決起來比較麻煩。應儘量避免,修改目錄後馬上進行提交。

SVN其他實用功能
svn 版本瀏覽器可以查看當前服務端中的代碼資源目錄,內容 以及版本,還可以進行目錄操作。
顯示日誌 可以查看文件的提交記錄,可以查那個用戶做出的修改,提交日期以及修改內容。
檢查修改 可以查看目前對那些文件進行了修改。

SVN分支

分支的使用各有各的想法,這裏參照https://blog.csdn.net/justry_deng/article/details/82259470
來處理分支,新增三個文件夾 trunk,branches,tags。
trunk 用來存放主幹
branches 用來存放普通分支
tags 用來存放階段的版本

分支的創建
這裏是從主分支創建分支,也可以使用子分支來創建分支。
在這裏插入圖片描述
在這裏插入圖片描述
將會創建branches/test2的分支。
在這裏插入圖片描述
執行更新後將會得到分支 test2的內容。 可以在此處編輯分支 test2的內容。 各個分支操作互不影響。合併除外。
分支切換
在這裏插入圖片描述
在這裏插入圖片描述
把主分支切換爲test2。那麼將會把 test2的分支內容更新至本地trunk 目錄。注意:執行切換操作時,一定要先提交。否則本地副本修改的內容將會丟失!

在這裏插入圖片描述
切換之後目錄即爲 test2的分支管理,
也就是說本目錄已經與主分支無關了,操作的是test2的子分支。

分支合併
把trunk 切換回主幹,選中主幹文件夾 執行合併操作, 並對test2分支做出修改後提交。
在這裏插入圖片描述
合併的源輸入test2分支路徑後,將會把 test2分支修改後的內容更新到 主幹。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章