步骤一:下载

下载安装

#下载
yum install -y subversion

运行以下命令查看SVN版本。

svnserve --version

image-20230822195818345

步骤二:配置SVN

  1. 运行以下命令创建版本库根目录。

    mkdir /var/svn
  2. 依次运行以下命令创建版本库。

    cd /var/svn
    svnadmin create /var/svn/svnrepos
  3. 依次运行以下命令查看自动生成的版本库文件。

    cd svnrepos
    [root@web01 svnrepos]# ls
    conf  db  format  hooks  locks  README.txt

Subversion目录说明如下表:

目录 说明
db 存放所有的版本控制数据文件。
hooks 放置hook脚本文件。
locks 用来追踪存取文件库的客户端。
format 一个文本文件,文件中只包含一个整数,表示当前文件库配置的版本号。
conf SVN版本库的配置文件(版本库的访问账号、权限等)。

4.设置SVN版本库的账号和密码。

  • 运行cd conf/命令。
  • 运行vi passwd命令,打开用户配置文件。
  • i键进入编辑模式。
  • 移动光标至[users]下,添加用户账号和密码。
#说明
添加账号和密码的格式为:账号 = 密码。例如,userTest = passWDTest,如下图所示(注意等号两端要有一个空格)。

image-20230822200255502

  • Esc键退出编辑模式,并输入:wq保存并退出。

5.设置账号的读写权限。

  • 运行vi authz命令,打开权限控制文件。
  • i键进入编辑模式。
  • 移动光标至文件末尾,并添加如下代码(其中,userTest表示账号,r表示读权限,w表示写权限)
[/]
userTest=rw

image-20230822200521690

  • Esc键退出编辑模式,并输入:wq保存并退出。

6.修改SVN服务配置。

  • 运行vi svnserve.conf打开SVN服务配置文件。
  • i键进入编辑模式。
  • 移动光标找到如下配置行,删除行前面的注释符#和空格
#说明
每行不能以空格开始,且等号两端要有一个空格
anon-access = read #匿名用户可读,您也可以设置 anon-access = none,不允许匿名用户访问。设置为 none,可以使日志日期正常显示
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /var/svn/svnrepos #认证空间名,版本库所在目录

image-20230822200708847

  • Esc键退出编辑模式,并输入:wq保存并退出。

7、运行以下命令启动SVN版本库。

本文示例中,启动命令直接指定到版本库。

svnserve -d -r /var/svn/svnrepos/

#说明
运行killall svnserve命令可停止SVN服务。

8、运行命令ps -ef |grep svn查看SVN服务是否开启。

如果返回结果如下图所示,表示SVN服务已经开启。

image-20230822201133292

步骤三:使用Windows客户端测试

  1. 在本地下载并安装TortoiseSVN客户端

  2. 在本地项目文件夹内的空白区域单击鼠标右键。

    本示例中,项目文件夹为C:\Test。

  3. 在弹出菜单中,选择SVN检出。

  4. 填写如下信息后,单击确定。

image-20230822202708709

image-20230822202743722

image-20230822204526059

5.验证

image-20230822204739340

image-20230822204813867

image-20230822204829795

远端查看

[root@web01 ~]# svn list svn://10.0.0.7/
搭建SVN.txt

客户端命令:

  1. Checkout(CO):将代码库的副本(工作副本)下载到本地文件系统。

    svn checkout URL [PATH]
  2. Add:将新创建的文件或目录添加到版本控制。

    svn add [FILE/DIR]
  3. Commit(CI):将本地更改提交到代码库,以便在版本历史中记录。

    svn commit [FILE/DIR] -m "Commit message"
  4. Update(UP):将代码库中的最新更改更新到本地工作副本。

    svn update [PATH]
  5. Status:显示工作副本中文件的状态,如是否修改、已添加等。

    svn status [PATH]
  6. Log:显示指定文件或目录的提交历史。

    svn log [PATH]
  7. Diff:显示文件之间的差异,可以比较工作副本与代码库中的版本。

    svn diff [FILE]
  8. Revert:还原工作副本中的更改,使其与代码库版本保持一致。

    svn revert [FILE]
  9. Delete(DEL):从版本控制中删除文件或目录。

    svn delete FILE/DIR -m "Deletion message"
  10. Move(MV):在版本控制中移动或重命名文件或目录。

    svn move SOURCE TARGET -m "Move/Rename message"
  11. Info:显示有关工作副本或文件的详细信息。

    svn info [PATH]
  12. Export:将指定版本的文件导出到指定目录,不包含版本控制信息。

    svn export URL [PATH]

远端命令

add: 将新创建的文件或目录添加到版本控制。
blame: 显示文件每一行的最后一次修改信息(文件注解)。
cat: 输出文件的内容。
changelist: 将文件添加到指定的变更列表。
checkout: 将代码库的副本(工作副本)下载到本地文件系统。
cleanup: 清理工作副本中的锁定和临时文件。
commit: 将本地更改提交到代码库,以记录在版本历史中。
copy: 复制文件或目录。
delete: 从版本控制中删除文件或目录。
diff: 显示文件之间的差异。
export: 将指定版本的文件导出到指定目录,不包含版本控制信息。
help: 获取帮助信息。
import: 将本地文件或目录导入到代码库。
info: 显示有关工作副本或文件的详细信息。
list: 列出目录内容。
lock: 对文件或目录加锁。
log: 显示提交历史日志。
merge: 合并不同分支之间的更改。
mkdir: 创建新目录。
move: 移动或重命名文件或目录。
patch: 应用补丁文件。
propdel: 删除文件或目录的属性。
propedit: 编辑文件或目录的属性。
propget: 获取文件或目录的属性。
proplist: 列出文件或目录的属性。
propset: 设置文件或目录的属性。
relocate: 修改工作副本的 URL。
resolve: 解决冲突。
resolved: 标记文件冲突为已解决。
revert: 还原工作副本中的更改。
status: 显示工作副本中文件的状态。
switch: 切换工作副本到不同的分支或目录。
unlock: 对文件或目录解锁。
update: 将工作副本更新为代码库中的最新版本。
upgrade: 升级工作副本到新的格式