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]。
注意 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]。
配置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