在NAS SMB卷上使用VisualSVN Server维护代码库

VisualSVN Server[1] 是 Windows 平台上流行的 SVN 形式的代码管理工具。以下我们将介绍把 NAS SMB 卷作为 VisualSVN 代码库存储中心时会遇到的几个问题以及相应的解决方法。

1. 安装错误的解决方法

我们以 VisualSVN Server 3.3.1 版本为例,在安装 VisualSVN Server 时我们可以选择使用 NAS SMB 卷的 UNC 路径作为 repo ,但是这样选会提示无法安装:
在NAS SMB卷上使用VisualSVN Server维护代码库

接着我们尝试将NAS SMB卷挂载到一个盘符上然后再安装,安装过程中会出错:
在NAS SMB卷上使用VisualSVN Server维护代码库

1.1. 解决方法

这个问题的解决办法就是用 SYSTEM 账号挂载 NAS SMB 卷,然后用新挂载的盘符作为 repo 的安装地址。具体 SYSTEM 账号挂载 NAS SMB 卷的方法请参见 以SYSTEM身份挂载文件卷解决SQLServer使用NAS SMB文件卷等问题[2]。
注意 SYSTEM 账号挂载成功之后在文件管理器上会显示成叉号,但是是可以使用的。
在NAS SMB卷上使用VisualSVN Server维护代码库

在 Y:\ 盘安装,
在NAS SMB卷上使用VisualSVN Server维护代码库

提示要用 UNC 路径,请忽略,
在NAS SMB卷上使用VisualSVN Server维护代码库

最终 VisualSVN 安装成功。
在NAS SMB卷上使用VisualSVN Server维护代码库

2. 打开代码库 URL 时提示内部错误

创建代码库 repo 之后,打开代码库的 URL 时会提示内部错误:
在NAS SMB卷上使用VisualSVN Server维护代码库

在NAS SMB卷上使用VisualSVN Server维护代码库

查看日志可以发现如下错误:Could not open password file: Y:/Repositories/htpasswd
在NAS SMB卷上使用VisualSVN Server维护代码库

2.1. 解决方法

经过实验后发现安装AD服务可以解决这个错误。安装AD的方法可以参考这一篇文章:通过安装和配置AD域解决Windows Server 2016的IIS无法加载SMB文件卷文件的问题[3]。

配置AD域控制器结束后会重启,重启完成之后登陆新的代码库 URL 就不会出现错误了。这时候需要在代码库上配置一个用户,然后就可以登陆进代码库网页。

忽略这个证书错误:
在NAS SMB卷上使用VisualSVN Server维护代码库

不会出现 internal error:
在NAS SMB卷上使用VisualSVN Server维护代码库

配置 VisualSVN 用户:
在NAS SMB卷上使用VisualSVN Server维护代码库

登陆成功:
在NAS SMB卷上使用VisualSVN Server维护代码库

3. 如何使用 SVN 上传下载代码

在 Windows 环境下比较常用的办法是使用 TortoiseSVN 客户端或者 VisualStudio SVN 插件来连接 SVN 上传下载代码。

3.1. TortoiseSVN

TortoiseSVN 可以在其官网下载
在NAS SMB卷上使用VisualSVN Server维护代码库

安装完成之后打开命令行,使用以下命令:

svn checkout https://iis-test-2019.iis-test2016.com/svn/repo/
svn add helloworld.txt
svn status
svn commit -m "Initial Commit"

在NAS SMB卷上使用VisualSVN Server维护代码库

在NAS SMB卷上使用VisualSVN Server维护代码库

在NAS SMB卷上使用VisualSVN Server维护代码库

在NAS SMB卷上使用VisualSVN Server维护代码库

以上就是 svn 命令行加 VisualSVN 在 NAS SMB 卷上的基本使用方法。

3.2. Visual Studio Code SVN 插件

Visual Studio Code 是 Windows 平台广泛使用的开发 IDE。它可以通过安装插件的方式支持 SVN。
在NAS SMB卷上使用VisualSVN Server维护代码库

安装完插件之后打开刚才svn同步下来的文件夹,就可以看到SVN历史以及添加和上传新文件。
在NAS SMB卷上使用VisualSVN Server维护代码库

在NAS SMB卷上使用VisualSVN Server维护代码库

在NAS SMB卷上使用VisualSVN Server维护代码库

3.3. Visual Studio SVN 插件

可以在 Visual SVN 官网下载 VisualSVN for Visual Studio插件。

安装完插件之后打开刚才svn同步下来的文件夹,创建helloworld3.txt,并添加到 SVN
在NAS SMB卷上使用VisualSVN Server维护代码库

在NAS SMB卷上使用VisualSVN Server维护代码库

在NAS SMB卷上使用VisualSVN Server维护代码库

在NAS SMB卷上使用VisualSVN Server维护代码库

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

上一篇:jdk1.5新特性1之静态导入


下一篇:今天我们重新聊聊JVM,为什么面试总是被问到?