SVN(Subversion)教程


SVN(Subversion)教程:版本控制入门

什么是 SVN?

SVN(Subversion)是一个集中式版本控制系统,用于管理代码、文档等文件的版本历史。它帮助团队协作开发,提供版本跟踪、文件还原和冲突解决等功能,是 Git 出现前非常流行的版本控制工具。


SVN 的基本概念

  1. 版本库(Repository)

    • 存储项目文件的中央服务器,记录文件的所有版本历史。
  2. 工作副本(Working Copy)

    • 从版本库检出的本地副本,开发者可以在本地修改、提交或更新。
  3. 版本号(Revision Number)

    • 每次提交(Commit)会为版本库分配一个唯一的版本号,方便追踪文件的变化。
  4. 提交(Commit)

    • 将本地工作副本的更改推送到版本库中,更新中央存储。
  5. 更新(Update)

    • 将版本库中最新的更改同步到本地工作副本。
  6. 冲突(Conflict)

    • 多人修改同一文件时可能出现冲突,需要手动解决。

SVN 的安装

在 Linux(Ubuntu)安装

执行以下命令安装 SVN:

bash 复制代码
sudo apt update
sudo apt install subversion

在 Windows 安装

下载并安装 TortoiseSVN,它提供了用户友好的图形界面。


使用 SVN 的基本操作

1. 创建版本库(Repository)

如果你想本地创建一个 SVN 版本库,可以执行以下命令:

bash 复制代码
svnadmin create /path/to/repository

2. 检出代码库(Checkout)

将远程版本库的文件检出到本地工作副本:

bash 复制代码
svn checkout <repository_url> /path/to/working_copy

示例:

bash 复制代码
svn checkout https://example.com/svn/project_name

3. 查看文件状态

在本地工作副本中,可以查看文件的修改状态:

bash 复制代码
svn status

输出示例:

?       新文件.txt    # 文件未被跟踪
M       修改的文件.txt # 文件已被修改

4. 添加文件到版本库

新文件需要添加到版本库后才能提交:

bash 复制代码
svn add 文件名

示例:

bash 复制代码
svn add 新文件.txt

5. 提交更改

将本地修改提交到版本库:

bash 复制代码
svn commit -m "提交说明"

6. 更新工作副本

获取版本库中的最新更改:

bash 复制代码
svn update

7. 查看日志

查看文件或项目的版本提交历史:

bash 复制代码
svn log

保持 SVN 登录

为了避免每次操作都需要输入用户名和密码,可以通过以下方法保存 SVN 登录信息:

方法 1:启用自动保存登录信息

SVN 默认支持保存登录信息,但需要确认配置文件中此功能已启用。

操作步骤:
  1. 打开 SVN 配置文件:

    bash 复制代码
    nano ~/.subversion/servers
  2. 找到 store-auth-creds 设置,确保其值为 yes

    plaintext 复制代码
    store-auth-creds = yes
  3. 保存文件并退出(按 Ctrl+O,然后按回车,再按 Ctrl+X 退出)。


方法 2:首次登录时选择保存凭据

首次运行 svn checkout 或其他需要登录的操作时,输入用户名和密码后,SVN 通常会询问是否保存凭据:

Store password unencrypted (yes/no)?

输入 yes 后,SVN 将登录信息保存到本地,下次操作时无需重新输入。


方法 3:使用 SSH 密钥登录(适用于 svn+ssh 协议)

如果 SVN 服务器使用 svn+ssh 协议,可以通过配置 SSH 密钥免去输入密码的麻烦:

  1. 生成 SSH 密钥:

    bash 复制代码
    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  2. 将公钥上传到服务器:

    bash 复制代码
    ssh-copy-id user@svn-server-address
  3. 配置完成后,使用 svn+ssh 登录时无需输入密码。


方法 4:手动删除或查看已保存的凭据

  1. SVN 将认证信息存储在 ~/.subversion/auth/ 目录下。可以通过以下命令查看:

    bash 复制代码
    ls ~/.subversion/auth/
  2. 如果需要清除已保存的登录信息,删除对应的凭据文件。例如:

    bash 复制代码
    rm -rf ~/.subversion/auth/svn.simple

高级操作

1. 创建分支

SVN 的分支是通过复制实现的:

bash 复制代码
svn copy <repository_url/trunk> <repository_url/branches/branch_name> -m "创建分支"

2. 合并分支

在工作副本中合并分支的更改:

bash 复制代码
svn merge <repository_url/branches/branch_name>

3. 解决冲突

当多人修改同一文件时可能会出现冲突,更新文件后可能看到冲突标记(如 <<<<<<<>>>>>>>)。此时可以手动解决冲突并标记解决状态:

bash 复制代码
svn resolve --accept working 文件名

总结

SVN 是一款经典的版本控制工具,适合小型团队或集中管理的项目。通过掌握 SVN 的基本操作以及如何保存登录信息,你可以显著提升开发效率。

相关推荐
一如既往の14 天前
【SVN】版本发布快捷操作
svn
卡布叻_星星16 天前
给项目配置svn地址
svn
放逐者-保持本心,方可放逐22 天前
svn 相关应用与管理
svn·svn 版本控制·svn 基础操作
myNameGL22 天前
Linux SVN下载安装配置客户端
linux·运维·svn
Jocelyn_书22 天前
svn分支相关操作(小乌龟操作版)
svn
kynge13622 天前
迁移SVN工程到GITLAB
svn·gitlab
0110编程之路22 天前
Ubuntu 搭建SVN服务
linux·ubuntu·svn
山南23723 天前
svn不能添加.a文件
svn
The best are water1 个月前
windows上设置svn忽略
svn
Domain-zhuo1 个月前
Git和SVN有什么区别?
前端·javascript·vue.js·git·svn·webpack·node.js