VisualSVN Server[1] 是 Windows 平臺上流行的 SVN 形式的代碼管理工具。以下我們將介紹把 NAS SMB 卷作為 VisualSVN 代碼庫存儲中心時會遇到的幾個問題以及相應的解決方法。
1. 安裝錯誤的解決方法
我們以 VisualSVN Server 3.3.1 版本為例,在安裝 VisualSVN Server 時我們可以選擇使用 NAS SMB 卷的 UNC 路徑作為 repo ,但是這樣選會提示無法安裝:

接著我們嘗試將NAS SMB卷掛載到一個盤符上然后再安裝,安裝過程中會出錯:

1.1. 解決方法
這個問題的解決辦法就是用 SYSTEM 賬號掛載 NAS SMB 卷,然后用新掛載的盤符作為 repo 的安裝地址。具體 SYSTEM 賬號掛載 NAS SMB 卷的方法請參見 以SYSTEM身份掛載文件卷解決SQLServer使用NAS SMB文件卷等問題[2](https://yq.aliyun.com/articles/715687)。
注意 SYSTEM 賬號掛載成功之后在文件管理器上會顯示成叉號,但是是可以使用的。

在 Y: 盤安裝,

提示要用 UNC 路徑,請忽略,

最終 VisualSVN 安裝成功。

2. 打開代碼庫 URL 時提示內部錯誤
創建代碼庫 repo 之后,打開代碼庫的 URL 時會提示內部錯誤:


查看日志可以發現如下錯誤:Could not open password file: Y:/Repositories/htpasswd

2.1. 解決方法
經過實驗后發現安裝AD服務可以解決這個錯誤。安裝AD的方法可以參考這一篇文章:通過安裝和配置AD域解決Windows Server 2016的IIS無法加載SMB文件卷文件的問題[3](https://yq.aliyun.com/articles/692463)。
配置AD域控制器結束后會重啟,重啟完成之后登陸新的代碼庫 URL 就不會出現錯誤了。這時候需要在代碼庫上配置一個用戶,然后就可以登陸進代碼庫網頁。
忽略這個證書錯誤:

不會出現 internal error:

配置 VisualSVN 用戶:

登陸成功:

3. 如何使用 SVN 上傳下載代碼
在 Windows 環境下比較常用的辦法是使用 TortoiseSVN 客戶端或者 VisualStudio SVN 插件來連接 SVN 上傳下載代碼。
3.1. TortoiseSVN
TortoiseSVN 可以在其官網下載。

安裝完成之后打開命令行,使用以下命令:
svn checkout https://iis-test-2019.iis-test2016.com/svn/repo/
svn add helloworld.txt
svn status
svn commit -m "Initial Commit"




以上就是 svn 命令行加 VisualSVN 在 NAS SMB 卷上的基本使用方法。
3.2. Visual Studio Code SVN 插件
Visual Studio Code 是 Windows 平臺廣泛使用的開發 IDE。它可以通過安裝插件的方式支持 SVN。

安裝完插件之后打開剛才svn同步下來的文件夾,就可以看到SVN歷史以及添加和上傳新文件。



3.3. Visual Studio SVN 插件
可以在 Visual SVN 官網下載 VisualSVN for Visual Studio插件。
安裝完插件之后打開剛才svn同步下來的文件夾,創建helloworld3.txt,并添加到 SVN




4. 參考文檔
4.1. VisualSVN Server: https://www.visualsvn.com/server/
4.2. 以SYSTEM身份掛載文件卷解決SQLServer使用NAS SMB文件卷等問題:https://yq.aliyun.com/articles/715687
4.3. 通過安裝和配置AD域解決Windows Server 2016的IIS無法加載SMB文件卷文件的問題:https://yq.aliyun.com/articles/692463
本文為云棲社區原創內容,未經允許不得轉載。