在 Windows 搭建 SVN 服务

图片

近公司给配了台新电脑,配置挺主流的,但是不舍得抛弃自己的旧电脑(原配嘛,这叫贪新不舍旧),于是打算在新电脑上只作开发环境,然后旧电脑作为版本库,这样保存版本的时候可以直接上传到旧电脑里,也够折腾的了。所以需要在旧电脑搭建一个 svn 服务器,新旧电脑同处一个局域网内。由于本人的开发方向还停留在 Windows 端 (石器时代),所以以下介绍的内容都基于Windows 平台(起码 XP 吧)。

目标:一台电脑作为 svn 服务器,其它电脑安装 svn 客户端,比如 基于Windows 平台的 TortoiseSVN

所需工具:

  1. Apache-Subversion-1.10.0 百度网盘

    https://pan.baidu.com/s/1CEqJcxXwvuMK-K7IGdKLxQ

    (官网地址 ---- 可能有更新的版本)

    http://subversion.apache.org/download.cgi#recommended-release

  2. TortoiseSVN

    https://osdn.net/projects/tortoisesvn/storage/1.10.0/Application/

Step 1.

解压 「Apache-Subversion-1.10.0.zip」(如下图 1.0) 到指定位置,比如「C:\svnserve」,路径不要带「空格」。其实这个不是安装的过程,绿色版无污染,啥也不用安装。

图 1.0

Step 2.

接着是将 svn 服务端的相关程序路径添加到系统环境变量里。在 系统属性 -> 高级 -> 环境变量 -> 系统变量 中找到变量 Path,如果已经存在此变量,则在这个值最后添加 「C:\svnserve\bin」,使用 「;」与其它内容隔开;如果不存在此变量,则添加此变量,并且修改值为「C:\svnserve\bin」。修改完确定即可。

现在可以开始在 cmd 里使用 svn 的相关命令了,打开 cmd 输入 「svnserve --version」,输出为如图 2.0 即说明环境变量添加成功。

图 2.0

Step 3.

然后就是让系统每次启动之后都能让 svn 服务自动打开,为了省事吧,不用每次都敲命令。在 cmd 中输入 「sc create SvnServe binPath= "C:\svnserve\bin\svnserve.exe --service --root D:\svnroot" DisplayName= "SvnServe" depend= tcpip start= auto」。

「D:\svnroot」指的是版本库根目录,根据自己的需求改吧。

注意咯,以上命令里的 = 号前面没有空格!

Step 4.

通常我们都喜欢先建立一个总的版本库,这样各个项目可以在这个版本库下面分别单独建立。以下介绍怎么建立总的版本库。

在 cmd 中输入 「svnadmin create D:\svnroot\repository」,自动生成了版本库目录 repository。

我们需要设定此版本库只允许有权限的人才可以读写,总不能让公司的项目内容随便公开吧。因此还需要对版本库配置「认证」。

进到目录 repository\conf,用记事本打开文件 svnserve.conf,找到

// # 表示注释
# anon-access = read
# auth-access = write
# password-db = passwd

改为

anon-access = none // 表示非权限用户的读写权限,无
auth-access = write // 表示权限用户的读写权限,写
password-db = passwd // 表示密码存储在文件 passwd 中

保存,关闭文件。
用记事本打开文件 passwd,找到字段 [users],在下面添加

// name 用用户名代替
// password 用密码代替
name = password

从此,版本库 repository 只有用户 name (密码 password)才可以读写了。各子项目都可以在此版本库中建立。

svn 服务到此算是配置完成了。

那就赶快在客户机测试一下吧!TortoiseSVN 这里就不介绍了,保重。

另外

需要注意的是防火墙设置:

xp 下,防火墙里边的「例外」需要添加程序 svnserve.exe。如下(图 xp防火墙)

标题图 xp防火墙

win7 或者更高的版本平台呢,就是设置 入站规则 了。不再熬述。

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-23 01:20:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-23 01:20:03       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-23 01:20:03       82 阅读
  4. Python语言-面向对象

    2023-12-23 01:20:03       91 阅读

热门阅读

  1. 常见的排序算法---快速排序算法

    2023-12-23 01:20:03       81 阅读
  2. Oracle-表备份、表数据备份、create select语句备份

    2023-12-23 01:20:03       61 阅读
  3. 设计测试用例

    2023-12-23 01:20:03       50 阅读
  4. 数据结构【2】:列表专题

    2023-12-23 01:20:03       58 阅读
  5. 【Linux】Linux中链表数据结构详细说明及用法代码

    2023-12-23 01:20:03       53 阅读
  6. LeetCode2828. Check if a String Is an Acronym of Words

    2023-12-23 01:20:03       59 阅读
  7. 面试算法65:最短的单词编码

    2023-12-23 01:20:03       60 阅读
  8. Macbook安装nvm以切换node版本

    2023-12-23 01:20:03       67 阅读
  9. nginx upstream 6种负载均衡策略介绍

    2023-12-23 01:20:03       53 阅读
  10. Android开发中实时语音开发之华为实时语音识别

    2023-12-23 01:20:03       65 阅读
  11. npm的使用技巧

    2023-12-23 01:20:03       52 阅读
  12. 基于MATLAB的模板匹配实现英文字母识别

    2023-12-23 01:20:03       56 阅读
  13. 做开发死路一条?一名五年全栈的看法

    2023-12-23 01:20:03       62 阅读